Introduction to Hidden Surface Removal.

Copyright (c) Susan Laflin. August 1999.

Computer Graphics attempts to represent objects in the general three-dimensional universe. Most objects are not transparent and so we are interested in their outer surfaces, which have properties such as shape, colour and texture which affect the graphical representation. A wire-frame drawing of a solid object is less realistic because it includes parts of the object which are hidden in reality, and this generates a need for some form of hidden-line or hidden-surface removal. It is important to realise that there is no single algorithm which works equally well in all cases. Most algorithms achieve greater speed and efficiency by taking the format of the data into account and this automatically restricts their use.

Since the amount of data needed to store the position of every point on the surface of even quite a small object is impossibly large, we have to make some simplifying assumptions. The choice of these simplifications will decide the form of data structure used to store the objects and will also restrict the choice of hidden-surface algorithm available. A typical set of simplifying assumptions might be those given below.

a) Divide the surface of the object into a number of faces surrounded by "boundary curves" or "contours". The contours may be any closed curves and the faces may be curved, so some means of specifying the equations of the surfaces is needed.

b) Restrict the description to allow only flat or planar faces. The contours must now be closed polygons in the plane. (Since two planes must intersect in a straight line, an object without any holes must have its edge curves made up of straight lines.)

c) Subdivide the polygons until they are all convex.

d) Subdivide the polygons until the object is described in terms of triangular facets (necessary for one of the hidden-surface algorithms described later).

At each simplification, the amount of data needed to describe one face is reduced. This should also reduce the time taken for the related calculations. However some objects require many more faces to give an acceptable approximation to the object. A simple example of an object which requires very many triangular facets to give an acceptable approximation is a sphere.

Convex Polygon

A plane polygon is "convex" if it satisfies the following test. Take an infinite line and position it to coincide with each edge of the polygon in turn. For every edge, ignore the two vertices which form its end-points. All other vertices of the polygon should lie on the SAME side of the test-line. If this condition is satisfied, then the polygon is convex. If some positions can be found which have vertices on both sides of the line, then the polygon is not convex. This may mean that some of the sides of the polygon intersect each other.