Click or drag to resize

Backface Culling

Backface culling removes triangles that do not face the camera. This reduces the number of fragments processed by the GPU. This has the most impact on performance when used on large primitives with the 3D window maximized.

Generally, backface culling should only be applied to closed, opaque objects. For example, when backface culling is used on an opaque cube composed of 12 triangles, the GPU only has to process fragments for up to 6 triangles.

Backface culling can also be applied to meshes on the surface. When the triangles become back facing, they can be culled since they are occluded by the central body. If the mesh is at altitude, backface culling will cause visible triangles to disappear as shown below:

Backface Culling

Backface culling is enabled by setting the TriangleMeshPrimitiveCullFace property to CullFace.Back, as shown below:

mesh.CullFace = CullFace.Back;

Without backface culling, triangle meshes for 30 degree extents covering the globe render at 1,346.99 fps.

Backface Culling Disabled

With backface culling enabled, the frame rate increases to 1,492.93. Fragments from about half of the triangles in the scene no longer need to be processed by the GPU since they are on the backside of the globe.

Backface Culling Enabled

Backface culling does not always provide such gains. For example, if 5 degree extents are used instead of 30 degree extents, no performance is gained from turning on backface culling and keeping the same view. Backface culling is most effective on large primitives. Regardless, turning on backface culling is unlikely to hurt performance. Furthermore, when zoomed in close, even a small primitive can have far less fragments processed using backface culling.