Chapter 3: Moiré & Aliasing Risks in Engine

Created by Sarah Choi (prompt writer using ChatGPT)

Moiré & Aliasing Risks In‑Engine for Costume Concept Artists

Focus: repeat patterns, placement graphics, and scale choices that survive real‑time rendering. Written equally for concept and production artists.


Why moiré happens (artist’s model)

Moiré is what you see when surface detail is too fine for the screen to sample cleanly. If a pattern alternates dark/light faster than the camera can resolve, the renderer “undersamples,” creating shimmer, crawling, or false beats.

Rule of thumb: if a motif or stripe lands at < 2–3 screen pixels per cycle at the intended view, it will likely alias.

Nyquist in plain words: the screen can only truthfully show patterns up to about one change every 2 pixels. Faster changes = lies.


Where costume patterns get risky

  • High‑contrast micro repeats: hairline pinstripes, micro houndstooth, tiny checks, narrow chevrons.
  • Converging lines: pleats, ribs, and stitched channels that compress in perspective.
  • Placement with fine text/line art: crests with thin serifs, mesh screens, QR‑like icons.
  • Specular micro‑detail: glitter inks, sequins, metallic threads that strobe as the BRDF rotates.
  • Extreme UV density differences: cuffs or trims packed tighter than body UVs.

Design‑time strategies (concept side)

1) Choose readable scales

  • Micro → texture (0.5–2 cm on body): avoid hard black/white alternation; use low contrast or move detail into normal/roughness.
  • Meso → pattern voice (3–10 cm): safest. Keep motif silhouettes chunky, with interior gaps ≥ 3–5 px at gameplay distance.
  • Macro → statement (12–40+ cm): control with negative space to prevent camera buzzing.

2) Tame contrast where frequency is high

  • Replace pure black/white with compressed value steps (e.g., 20/45/70 instead of 0/100).
  • Use tone‑on‑tone for micro checks. Let normals carry the weave illusion.

3) Prefer area fills over hairlines

  • Convert delicate outlines to filled shapes with internal knockouts. Minimum on‑screen stroke: ≥ 2 px (3 px safer).

4) Break grid harmonics

  • For straights: introduce slight width jitter (±5–10%).
  • For tossed/half‑drop: ensure no long ladders; use Poisson spacing.
  • Stagger stripe phase across panels to avoid scene‑scale beats.

5) Place logos where surface stays stable

  • Favor center front/back flats over curved/apex zones.
  • Wrap text to curved baselines across chest arcs to avoid compressing vertical stems into 1–2 px.

Production‑time strategies (build side)

UVs & texel density

  • One density per outfit (e.g., 1024 px/m). Keep trims within ±10% unless intentionally different.
  • Map checks/stripes with consistent U origins to avoid sudden phase jumps at seams.

Mipmaps & filtering

  • Use mipmaps. Do not disable to “keep sharpness.”
  • Anisotropic filtering (×8–×16) for oblique views of stripes and tapes.
  • Avoid negative mip LOD bias on fabrics; it makes shimmer worse. Small positive bias (+0.25–+0.5) can calm micro detail.

Shader routing of detail

  • Put micro detail in normal/roughness, not albedo. Albedo = low‑frequency color story.
  • Use blue‑noise or dithered masks to fade micro layers with distance.
  • Separate logo/crest into a decal or higher‑res material slot if late swaps are required.

LOD & distance‑based blends

  • Author a pattern LOD stack:
    • LOD0: full motif.
    • LOD1: softened interior detail, lowered contrast.
    • LOD2+: convert to quiet texture or solid color with subtle weave normal.
  • Cross‑fade with distance masks (dithered) to avoid popping.

Compression formats

  • BC1/DXT1 can halo tiny contrasts; avoid hairlines in compressed albedo.
  • Prefer BC7 for sharp crests/graphics; use BC5 (RG) for normals where possible.
  • Premultiply alpha for badges/decals to prevent fringes.

Temporal anti‑aliasing (TAA) realities

  • TAA reduces shimmer but can ghost thin, high‑contrast edges.
  • Thicken strokes slightly and avoid white micro text on moving cloth.
  • If your project uses upscalers (DLSS/FSR/XeSS), test: micro patterns often flicker more at performance modes.

Pattern‑type guidance

Straight repeats (stripes, checks)

  • Avoid 1‑px alternations at target texel density. Make the smallest stripe ≥ 3–4 texels in the texture and ≥ 2–3 pixels on screen at the intended view.
  • For checks, ensure value steps are closer (e.g., dark 30% vs mid 50%) to reduce strobe.
  • Add a subtle cross‑grain noise in roughness to break big‑screen banding.

Half‑drop / brick

  • Great at hiding seam echoes, but diagonal energy can produce moiré diagonals at distance. Test at 25% zoom and during pan/tilt; widen gaps if crawl appears.

Tossed/scattered

  • Watch for accidental diagonals (laddering). Use a quick blur to expose hidden beats and nudge positions.
  • Constrain rotations (±20–30°) so silhouettes remain legible when minified.

Placement graphics

  • Minimum counter‑space inside letters/logos ≥ 2 px at gameplay view.
  • Prefer solid fills + outer strokes over thin interior filigree.
  • On curved zones, warp art intentionally; don’t let perspective drive stems below 2 px.

Testing protocol (fast and reliable)

  1. Distance ladder: make a test scene with your character at 1 m, 3 m, 6 m, 10 m from camera. Capture stills.
  2. Motion sweep: 2‑sec pan and run cycles. Watch for crawl on diagonals and micro checks.
  3. Lighting sweep: matte → specular; rotate a key light 0–180°. Sequins/puff inks flicker under grazing specular.
  4. Upscaler toggles: Native, then DLSS/FSR quality/perf. Compare flicker.
  5. Color‑blind preview: Convert to luminance‑only and check readability of logos at distance.

Bundle the above as a Pattern QA turntable for each outfit.


Troubleshooting flow (symptom → fix)

  • Shimmering stripes at distance → Lower contrast; widen stripe; add positive mip bias; push detail to normal/roughness; add distance fade.
  • Logo edges ghost with TAA → Increase stroke thickness 10–20%; avoid pure white; reduce micro‑movement via cloth sim damping; consider decal with higher res.
  • Checkerboard crawls on tilt → Raise anisotropy; reduce finest checks; rotate pattern a few degrees to avoid perfect horizontal/vertical a.k.a. shimmer axes.
  • Specular sparkle on glitter → Replace baked sparkle in albedo; drive highlight via roughness noise at lower contrast; clamp specular intensity; use multi‑scatter cloth BRDF if available.
  • Moiré on photo‑sourced fabrics → Repaint into vector‑like shapes; remove camera sensor demosaic patterns; avoid pre‑sharpened textures.
  • Aliasing at UV seams → Ensure matching texel density and phase; add 8–16 px padding in the atlas; avoid negative LOD bias; use seam‑aligned U origins for stripes.

Quick reference

  • Pixels beat theory: keep smallest repeats ≥ 2–3 screen px per cycle at intended view.
  • Contrast is a throttle: lower for micro, higher for macro.
  • Normals over albedo: move high frequency into shading, not color.
  • Distance‑aware: fade, LOD, and decal where needed.
  • Test in motion: pans/tilts expose lies static shots hide.

Design boldly—then protect the camera. Let your patterns sing at hero distance and go quiet gracefully as they leave the spotlight.