Rendering and Animation
Authors: Scott Blanksteen and Bruce Lin
Rendering and Animation are the basis for almost all visual displays
in a Virtual Reality system. In most Virtual Reality and Telepresence
environments, the system has some three-or-more-dimensional model of
the application domain, whether it is an artificial world, the inside
of a body, the stock market, or molecular modeling. Rendering is the
process of producing a representation of this world that can be
displayed using whatever two-dimensional output devices are available.
Even so-called three-dimensional output devices such as head-mounted
displays with stereo output are actually just two tightly-coupled
two-dimensional devices which display the world from slightly
different points of view to simulate how our two eyes see the world.
Animation is the process of repeatedly drawing slightly different
views of the world to represent changes that occur, either under the
control of the system or through actions taken by the user. Rendering
algorithms and animation quality are intricately linked, since, the
more efficient the rendering algorithms are, the higher the Animation
frame rate can be. The frame rate is the number of times the display
is updated per second.
Rendering
The well-developed field of Computer Graphics has produced many
algorithms for rendering three-dimensional objects onto
two-dimensional displays. The are many complications involved in this
process, including, but not limited to, drawing polygons, filling
polygons, shading, shadows, displaying patterns, changing line and pen
styles, and clipping and visible-surface determination. In general,
objects are represented using polygons because they are relatively
simple to draw and, by using a sufficient number of polygons, most
shapes can be closely approximated. Patterns are important because
they can be used to greatly reduce the number of polygons necessary to
adequately represent real-world objects. Since rendering time is
generally proportional to the number of polygons to be drawn, reducing
the number of polygons to be drawn allows increased animation quality
through higher frame rates. As an example, consider drawing a brick
wall; we could represent each brick as a rectangle and draw each
separately. Unfortunately, there might be thousands of bricks in the
wall, which would slow down the rendering process substantially.
Alternately, we could represent the wall as one large rectangle and
draw a brick pattern over the rectangle, which would be much faster.
Clipping and visible-surface determination are among the most
important stages of rendering. Clipping determines which objects in
the three-dimensional world show through the viewport. Visible-surface
determination is the process of determining which parts of the visible
objects are visible from a particular viewpoint. Conceptually, it is
not very difficult; unfortunately, unless the hardware being used has
built-in support for visible-surface determination, the algorithms
take a lot of computation. Common algorithms include Z-buffering,
space partitioning, and ray tracing. Generally, only high-end hardware
(such as Silicon Graphics workstations) has hardware support - PC's
and even most workstations rely on smart algorithms. Understandably,
there is a lot of active research in the area of improved
visible-surface determination algorithms.
Animation
Animation means, literally, bringing to life. Rather than a static
picture of a scene, animation allows a system to change, whether that
change is caused by the passage of time or by actions taken by agents
in the scene. As such, animation is critical to Virtual Reality -
without it, we would simply be looking at three-dimensional
photographs. Animation is key to the interaction capabilities of
virtual environments. Animation does not imply that objects in the
scene are moving; it could be that the viewpoint of the user is
changing, as in an architectural walkthrough application. Colors of
objects in the scene can change in relation to changes in properties
of those objects; heavily traded stocks could become brighter in a
financial analysis application. Of course, animation also must handle
objects that move: other people in a cooperative-work environment;
agents controlled by the system; bouncing balls in a virtual physics
laboratory; walls, doors and windows in an architectural-design
application.
Educational Background
Computer graphics in general, and rendering and animation in
particular, require a strong background in mathematics and computer
algorithms. Rendering algorithms require knowledge of affine and
projective geometry, linear algebra, and various models of light and
color. Animation requires a good understanding of continuous
mathematics. Good animation also requires the use of some form of
physical modeling, to represent the effects of gravity and interaction
between objects.
For Further Information
A good reference for most computer graphics topics is Foley, van Dam,
Feiner, and Hughes, "Computer Graphics: Principles and Practice,"
Second Edition, Addison-Wesley, 1990. It covers topics including
low-level graphics hardware, rendering algorithms, input devices,
user-interface design, solid modeling, lighting models, and animation.
![[Table of Contents]](/icons/button-contents.gif)
Human Interface Technology Laboratory