Rendering Approaches

The Viewing Transform -
converting from database coordinates to screen coordinates

View Frustrum Culling -
eliminating objects or portions of objects that fall outside the
visible area defined by the view volume, so that they no longer need to
be considered during additional rendering computations


Back face culling
Normals for individual faces are compared with the view
vector. Visible surfaces are those whose intersection with the view
vector forms an angle of less than 90 degrees. Those which intersect at
angles of 90 degrees or more are flagged as back facing. Back facing
polygons then are not considered for rendering purposes.

-
Z buffering
-
In addition to color information, Z value is
maintained for each pixel
-
All Z values are initialized to far clipping
plane
-
All polygons are drawn
-
As each pixel for each polygon is drawn, its Z
value is compared to that already in the Z buffer
-
If the new Z value is nearer to the viewer than
the existing Z value, the pixel drawn
-
If the new value is further away than the
existing Z value, the pixel is ignored
-
Z buffering can be done incrementally
-
Drawing order is unimportant (except in the case
of a ``tie'')
-
Z buffering is widely implemented in both
software and hardware
-
Z buffering does a good job of rendering visible
surfaces
-
Z buffering does not address how light interacts
between objects
-
Ray tracing
-
A ray is traced from the eye location through
each pixel location into the scene.
-
The ray projects into the scene until it
encounters a surface.
-
If the surface is reflective, a portion of the
ray bounces off the surface as determined by the surface properties,
and continues into the scene until it encounters another surface.
-
If a reflected ray encounters another surface
before encountering a light source, the original surface is in shadow.
-
If the surface is transparent, a portion of the
ray passes through the surface and continues into the scene.
-
Each surface encountered contributes a
proportion of the color that ultimately will be applied to the pixel
through which the ray was traced.
-
When the ray has encountered the number of
surfaces specified by the trace depth, a weighted average of all
surface properties encountered is applied to the pixel in question. The
process is repeated for each pixel in the rendered image.
-
Ray tracing is used to simulate:
-
inter-object reflection
-
refractive materials
-
object shadows
-
Ray tracing is not very efficient in simulating
diffuse lighting
-
Radiosity - In addition
to light originating from primary sources, light that reflects from
surfaces in the scene is considered as secondary source light in the
rendering scheme.

-
Scene is decomposed into polygons
-
The portion of light from each polygon that reaches
each other polygon is computed - form factors
-
All polygons except light sources are set to an
unilluminated state
-
Light from source polygons cascades through the
scene - surface polygons reflectively illuminate more surface polygons,
etc.
-
Process continues for number of steps set by
algoritm or user - final apparent color values are obtained
-
Polygons are drawn, usually with Z buffer algorithm
-
Radiosity can be thought of as a color
pre-processing step rather than a rendering algorithm per se
Volume rendering
Stanford Computer Graphics Laboratory
Back to 3D Color outline
This file was last modified on January 29, 2002.