MCIS 625: Computer Graphics
Winter 2004
WEEK 9
Instructor: Dr. Michael Laszlo
Assignment
Assuming the 3D scene consists of colored opaque surfaces, it is not enough to simply project all the surfaces contained within the view volume into the image plane. Were we to do this, the resulting image would be a nonsensical tangle of colored patches. Rather, it is necessary to render only those surfaces that are not hidden from view by other surfaces. In contrast, the surfaces that lie behind other surfaces are covered (or partially covered) by those nearer surfaces and should not be visible. This process of removing those surfaces that are covered and should not be visible is known as hidden-surface removal. Alternatively, to place emphasis on the problem of finding those surfaces and parts of surfaces that are visible, the process is also known as visible-surface determination.
In the real world, we get hidden-surface removal for free. Look up from your monitor and you see the walls of the room you're in, and these walls occlude or hide whatever surfaces lie beyond. Hidden-surface removal is achieved by the nature of light, and the way that light interacts with the surfaces in the world. Unfortunately, in the computer, hidden-surface removal is not free. The computations required to carry it out are generally quite CPU-intensive.
There exist numerous algorithms for performing hidden-surface removal. They are broadly classified as either image-precision or object-precision algorithms. Image-precision techniques ask the question: For each pixel in the image, what color should that pixel be? To answer this question, you can imagine casting a ray or projector into the scene, through the pixel. The object that the ray pierces first (if any) is the object closest to the viewer, and this object determines the pixel's color. We do this for every pixel.
Object-precision techniques ask the question: For each object in the scene, which portion(s) of the object are visible? Object-precision generally work by comparing objects to one another, while eliminating surfaces that prove to be hidden and keeping track of those that are not.
Image-precision techniques are typically performed at the resolution of the display device. This means that the technique must be performed repeatedly whenever a scene is rendered into multiple display devices. However, image-precision techniques tend to be more efficient and simpler than object-precision techniques, and they can generally be carried out through parallel processing. In contrast, object-precision hidden-surface removal is carried out independent of any display device. The output of such techniques takes the form of a mathematical description of visible surfaces that can then be rendered to any display device, regardless of resolution.