Shading: Flat, Gouraud, and Texture Mapping
Most 3D objects are made up of polygons, which must be "colored
in" in some fashion so they don't look like wire frames. Flat
shading is the simplest method and the fastest.
A uniform color is assigned to each polygon. This yields unrealistic results,
and is best for quick rendering and other environments where speed is more
important than detail. Gouraud shading is slightly better. Each point of
the polygon is assigned a hue, and a smooth color gradient is drawn on
the polygon. This is a quick way of generating lighting effects -- for example,
a polygon might be colored with a gradient that goes from bright red to
dark red.
Texture mapping is the most compelling and realistic method of drawing an object,
and the version that most modern games like Doom require. A picture (this
can be a digitized image, a pattern, or any bitmap image) is mapped onto
the polygon. A developer designing a racing game might use this technology
to draw realistic rubber tires or to place decals on cars.
Video texture mapping is a particularly exciting form of
texture mapping that fits in well with 3d chipsets like the ViRGE,
which employs high-speed video processing. A video stream (either
live, or from an AVI or MPEG file) is treated like a texture, and is
mapped to a 3D surface.
Bilinear and Trilinear Texture Filtering
These are methods employed in texture mapping. Trilinear filtering is
more sophisticated and requires MIP-mapping (see below) as well.
Anti-Aliasing
Low res graphics have a tendancy to look blocky, especially when
viewing a diagonal line, anti-aliasing will slightly blur these "stairsteps"
which fools the eye into thinking it sees a smoother line.
Dithering
The following is only a simple example of a widely used trick of the eye.
If you only had two colors - red and yellow, but wished to display green you can do so by making a
checkerboard pattern of red and yellow pixels. This same technique when properly applied can produce
the appearance of many more colors than are actually being displayed.
Z-buffering
Z-Buffering is a technique for performing "hidden surface removal"
– the act of drawing objects so that items which are "behind"
others aren’t shown. Performing Z-buffering in hardware frees software
applications from having to perform the intensive hidden surface removal
algorithm.
How big are the polygons?
Flat Shaded: This is the fastest to compute, it also appears the most primative.
Think of what a large ball made from sheets of plywood would look like.
Gouraud shading: While not nearly as fast for the computer to generate,
these polygons have a much smoother look most of the current games use this type of shading,
games like Tie Fighter, Flight Sim 5.1, TFX.
Phong Shading: Now the computer really has to work hard to maintain a respectable
framerate when using this type of shading, however the results are much more impressive.
Phong shading is used in many rendering programs like 3D Studio and others. This is where the
3D cards will be headed in the near future, and when they are capable of this type of smoothing
you can expect simulators to look more like Myst and less like SU27.
Sub Pixel Correction
A bit-map is in essence a grid, if the line you are trying to draw does not fall
directly on a pixel, it is snapped to the nearest one. This process induces an error which will show up on the
screen as uneven diagonal lines or blocky circles or flickering dots. The first step to removing this error is to
break the pixel "grid" into smaller so-called sub-pixels in memory. Now instead of going to pixel ( X-32, Y-41 )
you can go to ( X-32.25, Y-40.75 ). The second step now that you have more exact points along the line is to
anti-alias the resulting pixels.
Bi-Linear Filtering
A form of anti-aliasing where image smoothing is based not only on the pixels
on each side, but up and down as well.
Quadratic Mapping
This is a feature only a few cards have but which holds much promise.
Most objects are made of polygons, for angular subjects this is fine but when it comes to representing a
curved surface you can only approximate. The closer you get to the curved object the more apparent this
approximation becomes. The usual alternative to this is to add more polys, the problem is you only have
a certain number of polys to work with if you are going to maintain a respectable frame rate. Quadratic
mapping on the other hand replaces the polygons with 9 control points, these points serve as a guide by
which an image is bent or curved to the desired shape.
Interpolation
A procedure where after low-res image ie: 320 x 200 is scaled to a higher
resolution such as 640 x 480, the resulting gaps between the pixels are filled in with pixels that have
values based on the surrounding pixels. This is most commonly found on cards that have real-time video
playback. While this feature is great for seeing low-res animations and movies full screen, be sure that
the card can support 640 x 480 animations in real-time as well.
Transparency Mapping
This capability is important in that it will allow a programmer to "cut"
holes or windows into an object without having to actually model and additional faces.
Reflection Mapping
The ability to map a image onto an object to simulate reflection. This
makes glass look much more convincing.