Rendering

Z-Fighting

Shimmering caused by coplanar surfaces

Definition

Z-fighting is the flickering pattern that appears when two surfaces sit at almost the same depth and the depth buffer cannot decide which one is closer. The fix is artistic, not technical: separate the surfaces by a small offset, use decals on a polygon offset, or push detail into the base material. In stylized art it can wreck a clean line; in environments it shows up most often on stacked floor tiles or coplanar trim.

In production

Z-fighting shows up constantly in modular level kits built in Blender or Maya when two floor tiles share an exact coplanar edge with zero offset — the fix is nudging one mesh by a fraction of a unit along its normal, or enabling a small depth-bias parameter in the material if the engine exposes one (Unreal's decal system has this built in). Both Unreal and Unity suffer worse at greater camera distances because depth-buffer precision drops logarithmically with distance from the near plane, so a game with a huge draw distance sees more flicker on distant geometry than close-up. Decals are the most common offender: a bullet-hole or blood-splatter decal placed flush against a wall will fight with the wall's own diffuse pass unless it's rendered as a proper decal actor rather than a coplanar quad. In stylized games with hard black outlines, z-fighting on overlapping trim pieces reads as a visibly broken line rather than a subtle shimmer, so environment artists often just increase the gap to 1-2mm during grey-boxing to avoid it entirely.

Learn Z-Fighting in

Tools that use Z-Fighting

See also