[ The PC Guide | Systems and Components Reference Guide | Video Cards | 3D Video Acceleration ]
3D Images and Operations
3D images are much more complex than 2D images because of the much greater amount of
information that must be used in order to create a realistic 3D world. In addition,
several mathematical operations must be used in order to convert this 3D world to one that
can be projected on a computer screen.
When you look at the world, your eyes and brain do this automatically. Most of the
operations that allow you to perceive a three-dimensional world occur so seamlessly that
you don't even realize they are happening. Have you ever wondered how you can, say, look
at a nature scene of a mountain range, forest and a lake, and know that the
mountains are farther away than the lake is, for example? This occurs through a complex
interaction of visual effects--light levels, shadowing, relative motion--combined with
your own knowledge of how the world works. The job of a 3D graphics engine is to duplicate
this to whatever extent possible so that what you see on the screen seems realistic to the
3D images are handled inside the computer using abstract models. Usually, each 3D
object is composed of hundreds or even thousands of small triangles (or other polygons)
that describe its structure. When the program wants to move an object, it manipulates the
corners of the triangles to create movement. (This is highly simplified of course but
gives you the general idea). Of course real objects aren't made up of thousands of
triangles but doing it this way is necessary in order to do the animation.
The heavy computation work is involved in converting these hollow triangles into solid
surfaces. In the real world, objects aren't islands; they interact. They overlap one
another, cast shadows, reflect light, and they appear dimmer when in the distance. There
are very complex mathematical equations that are used to determine when an object is
visible in a scene based on a given angle, what color it should be, etc. If you are
playing a 3D game and want smooth animation, these calculations must be redone 20+ times
per second! This is why 3D accelerators are used--they are customized to performing these
Each time the screen is recalculated (due to movement in a game, for example), it is
necessary to recalculate the color and intensity of each pixel on the 2D screen! This is
done by applying different 3D computations to the scene, in a process that is called rendering.
There are several different types of computations that are performed in 3D processing.
Some cards support more of them than others, and some are more efficient at certain ones
than others are. Here are some of the more common 3D operations:
- Gourad Shading: This is an algorithm that is used to give 3D surfaces realistic
shading. The effect helps the object appear to have depth and helps to define the shape
better. It is a popular computation that is used in many 3D games.
- Clipping: This operation determines what part of an object is visible on the
screen and "clips out" any part that the user cannot see. This saves time since
the parts of objects that are off-screen are ignored.
- Lighting: Objects in the real world have their appearance shaped by the light
sources in the scene. Lighting effects cause color shading, light reflection, shadows and
other effects to be added to objects based on their position and the position of light
sources in the room. Light sources can be anything from an overhead light in an internal
room in an office (or castle) to the sun, moon, or even an explosion!
- Transparency: Some objects in the real world are transparent or semi-transparent.
Special calculations can be done to determine what objects are visible through a glass
door, for example.
- Texture Mapping: For realistic objects, it is necessary to overlay pictures on
them to give them texture. For example, most walls are not made of a solid, flat
substance. They are made of a material such as brick, wood or plaster, and they may have
pictures, tapestry or signs on them. Texture mapping allows objects to be made so that
they appear to have substance instead of being "flat". There are in fact several
different types of texture mapping that are used by various software and hardware.
- Dithering: This is an effect that is actually used in many different places,
including regular 2D graphics and also in printing. Dithering is the process of mixing a
small number of colors together in specific patterns to create the illusion of there being
a larger number of colors. For example, inkjet color printers use dithering to create a
wide spectrum of apparent color, even though each dot printed is only one of three (or
four) different real shades. In 3D, it is used largely to show more realistic color
without needing to increase the color depth of the image (which means more computation
time and more memory to store the graphics).
- Fogging: An effect used in outdoor scenes, fogging serves two purposes by
blurring objects that are in the distance. First, it helps to make the scene appear more
realistic. If you've ever looked at a mountain scene you know that in the distance,
objects to appear fuzzy due to atmospheric moisture. Second, fogging allows the 3D process
to be performed more quickly because those objects in the distance that are "fogged
out" can be computed more quickly since they are shown in less detail.
- Filtering: There are several types of filtering that can be applied to the image.
These are used to "clean up" the image and smooth out textures and shapes. In
particular, bilinear filtering is used when showing textures up close to remove the
"blocky" look that results from magnifying an object when showing it at the
front of a scene.
- Buffering: This isn't really a 3D operation like the others listed here, because
it isn't something that is done to the data. However, advanced 3D cards include
memory buffers that are used for various tasks during these complex calculations. The more
buffers the card has available, the more flexibility it has when doing advanced
operations. This is why 3D cards usually need more memory than would strictly be necessary
just to hold the screen image. Newer AGP
systems can use the system memory for this.
Performance Issues and Tradeoffs
Home - Search
- Topics - Up