The creation of computer generated imagery has traditionally been
separated into two separate phases: that of modeling and that of rendering.
In the modeling phase a designer creates a 3D wireframe model of an object using
a variety of standard 2D CAD methods in addition to using advanced 3D surface modeling
methods. The result is a mathematical description of an object, typically described as a
number of Bezier or B-Spline 2D curves and 3D patch surfaces.
With the advancement of more powerful computer workstations, users are now demanding
methods to view these wireframe models as shaded, photo-realistic images. The techniques
by which 3D wireframe data is turned into photo-realistic (digital) images is called rendering.
Through the application of a series of advanced mathematical algorithms an artificial
image can be created that looks as though it was shot by a real camera. Key terms of the
rendering process to keep in mind are:
Hidden surface elimination: Remove hidden lines and
hidden surfaces from the image,
Shading: Add color and simulated lighting effects to
the surfaces,
Texture mapping: Simulate complex surface patterns
using scanned-in or simulated textural detail,
Shadowing: Simulate real-world shadows cast by
objects.
Unlike the modeling process, rendering is computationally intensive
due to the large number of floating point operations that must be performed to simulate
the lighting, texture and shadowing effects. It wasn't too long ago that photo-realistic
rendering was restricted to a privileged few who had access to CRAY and super-mini
computers; in contrast, the rapid advances in CPU technology is now allowing this
technology to become accessible to users of mid-range PCs and workstations alike.
While many variations of hidden surface techniques exist, most can be grouped into two
different categories, those that use ray tracing and those that use scanline
techniques. The difference in the two techniques can be described if we imagine a person
looking through a window (the monitor screen) into a scene composed of 3D objects. In ray
tracing, a imaginary ray is sent from the viewer's eye, or the camera location, in the
direction of each pixel on the screen. If the ray hits an object then the color of the
object is determined using a shading algorithm and that color placed on the screen at the
specific pixel location. Thus, only the front-most surfaces of objects are displayed. Ray
tracing also allows for transparent objects, refraction, reflections and hard-edge shadows
by allowing each ray to continue its journey through the scene rather than having it stop
at the first surface.
Scanline techniques, on the other hand, operate by mathematically cutting the 3D scene
with a 2D plane; this plane is aligned with a scanline of the tv monitor and passes
through the eye (camera) location. By doing so the technique can quickly determine which
surfaces are seen by the viewer. Since the hidden surface information is determined on a
scanline basis rather than on a pixel-by-pixel basis, the generation of the shaded image
proceeds at a faster rate.
To maintain NuGraf as a leading-edge technology product considerable effort has been spent
researching and developing fast scanline implementations of soft shadows, fast polygon
intersection and space partitioning algorithms for the ray tracer, analytic filtering of
textures, and methods to simulate real-world reflections (planar and spherical environment
mapping). In addition, a fast and efficient hidden surface method was developed which
minimizes on memory usage and allows for such varied effects as transparency, analytic
image anti-aliasing and area anti-aliasing of textures and shadows.