In displaying objects, there frequently occurs overlapping, meaning that the objects which are closer are visible, and those behind them are non-visible, because they appear as hidden behind them. There have been designed many, rather complex algorithms for solving this issue. Their goal is to find out objects whose parts are visible only from the observer place. Sometimes it is necessary to draw also edges of overlapped objects, most often by dash lines. The visibility algorithms always depend on the fact of how the objects are represented in an area. The optimal variant is to have objects described using their limits, best by surfaces. Most of these algorithms too are prepared for this sort of representation of objects.

Visibility algorithm categorization

Sutherland, Sproull and Schumacker termed the visibility algorithms according to their approaches and principles used. They are either image area or object area types. According to [2], the visibility algorithms can be split depending on the form of output data.

  1. Line alghorithm (Hidden line eliminator)

        On the output we receive a set of abscissas representing visible edges. The advantage of this solution is the fact that we have a set of vectors, and we are not limited due to issues of resolution. In this case, we can scale the scene without any loss in quality.

  2. Raster alghorithm (Hidden surface eliminator)

        On the output, we receive a set of pixels representing the specific points of the scene in the fixed given resolution, without any option to scale the scene. Here it is, however, possible to draw also surfaces with shading and lighting.

Pre-processing of data

Because it is time demanding to calculate all algorithms, at the beginning it is necessary to analyze the object in the scene. This is called data pre-processing. First, all objects outside the visual angle, are excluded and all polygons of which the scalar vector product (of the normal vector of the polygon and the direction of view) is positive, and the given polygon is then reversed