Rendering 3D images is a multi-step process. First, we need to identify which component surfaces (usually polygons) of the model are viewable from the current viewpoint. This process involves back-face culling as well as identifying surfaces obstructed by surfaces in front of them. Once visible surfaces have been identified, we can simply assign a color to them and paint them. We saw this approach to some extent in Chapter 1.