ShadedGeometry with Multiple Lights & Material
lab11-GeometryPositionNormalMultipleLights3 (SimpleCar, SimpleSolar, SimpleRobot, SimpleMobile, SimpleCube3d, SimpleTree)
ShadedTeapotCylinderSphere (with moving light source)
ShadedTeapot (with different materials)
Ambient/Diffuse/Specular (From left to right: diffuse; ambient; diffuse + ambient; diffuse+ambient+specular) from lighthouse3d.com
Light sources (From left to right: directional; point; and spotlights) from lighthouse3d.com
Z-fighting, also called stitching, is a phenomenon in 3D rendering that occurs when two or more primitives have similar values in the z-buffer. This problem is usually caused by limited sub-pixel precision and floating point and fixed point round-off errors. https://en.wikipedia.org/wiki/Z-fighting
There is very high precision at the near plane, but very little precision at the far plane. If the range [-n, -f] is getting larger, it causes a depth precision problem (z-fighting); a small change of ze around the far plane does not affect on zn value. The distance between n and f should be short as possible to minimize the depth buffer precision problem.