Without light, we see nothing, and without turning our heads, we only see what is in a cone in front of us. Even if we have sufficient light, a scene with objects suitably arranged, lists of vertices for every triangle on every surface, and a camera peering from some interesting angle, there is still work to be done before we can have an image on the computer screen. Objects either outside the field of view or obscured by another object need to be temporarily culled from the scene, and objects partially in the field of view need to be trimmed (clipped) so that only the visible parts are considered. Then everything needs to be projected onto a two-dimensional window in preparation for transferring it to the actual display screen.
We start this work by mathematically determining what it is we can actually see so that we do not inadvertently draw triangles or edges hidden by other objects. Since there may well be thousands or millions of triangles in the scene, we always have to be attuned to the efficiency of our calculations; designing good, speedy algorithms is also key.
In an earlier chapter, we examined the camera position and determined how to transform coordinates for object vertices into the camera coordinate system. Recall that, in this system, the camera is sitting at the origin looking down the vector coming from a point in the scene toward the camera. Often the axis determined by this direction vector is called , so the camera is looking ...