About Face Normals and Removing Hidden Surfaces

There are several steps commonly taken to speed up the rendering process.

In order to minimize the time it takes to render a model, it is common practice to remove hidden surfaces or hide objects that are positioned off-camera.

Every surface that you model is made up of faces. Faces are either triangular or quadrilateral and each face has an inward- and outward-oriented side. The direction in which a face is pointing is defined by a vector called a normal. The direction of the normal indicates the front, or outer surface of the face.

Face normals determine the direction at which light is reflected (bounced) and bent (index of refraction). If the camera is behind a face, the face will be invisible to the camera, but still processed by the renderer to reflect lights and cast shadows.

In instances where you see a hole, it usually means the face is physically missing from the model or facing away from the camera.

If a face is missing, you’ll need to manually reconstruct it. For objects drawn using 3DFACE, the direction of normals is determined by the way a face is drawn in a right-handed coordinate system: if you draw the face counter-clockwise, the normals point outward; if you draw the face clockwise, the normals point inward. You should draw faces consistently.

Note: The normals on solid objects are usually correctly oriented, which can be an aid to creating models for rendering.

When rendering, the renderer searches for all normals that point away from the viewpoint and removes the associated faces from the scene. This removal step is called back-face culling.

After the back faces have been removed, the renderer uses a Z buffer to compare relative distances along the Z axis. If the Z buffer indicates that one face overlaps another, the renderer removes the face that would be hidden. The time saved is in proportion to the number of faces discarded out of the total number of faces.

Every object in a scene is processed by the renderer, even objects that are off camera and are not going to be present in the rendered view. A model that is built with the intent of rendering will benefit from good layer management. By turning off layers containing objects that are not in the current view, you can increase rendering speed substantially.