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]


Human Interface Technology Laboratory