Вот нашел в Premier Press - Beginning OpenGL Game Programming (2004).pdf:
Цитата:
Z-Fighting
When drawing overlapping triangles with similar depth values, a visual artifact known as
z-fightingcan manifest itself, causing the triangles to flicker as the camera moves. This is an imprecision
issue; because depth values are stored in a finite (and relatively small) range, small errors
introduced during their calculation can cause triangles that should be behind other triangles to
show through them instead.
Z-fighting usually happens when using a 16-bit depth buffer, so switching to a 24-bit depth buffer
usually fixes the problem. However, to get a hardware-accelerated 24-bit depth buffer, you usually
have to also request a 32-bit color buffer, which may not be possible on older systems. In addition,
even with a 24-bit depth buffer, you may still experience z-fighting.
The best solution is often to modify the values used for the far and near clip planes. Making the
view frustum shorter allows for greater precision. Furthermore, z values are mapped to the depth
buffer in a nonlinear fashion, so that objects closer to the screen have greater precision than
objects farther away. Therefore, increasing the distance to the near clip plane has a more dramatic
effect than decreasing the distance to the far clip plane. For instance, doubling the near plane distance
from 1 to 2 doubles the precision of the depth buffer.