3D Glossary
3D Rendering Pipeline. I didn't include this in the more general areas of the site because it's rather technical. The Rendering Pipeline is the process by which an imaginary "computer world" is made visible:
1. Generate Geometry. The application selects which polygons (surfaces which describe the scene) would be in the field of view. These polygons are then decomposed into simple triangles, described by the x,y,z coordinates (relative to some fixed reference point in the program) of the three vertices.
2. Geometric transformations. The selected triangles are converted from '3D world' coordinates to coordinates the 3D rendering engine can handle, based on what the current viewpoint 'sees'.
3. Triangle culling and clipping. Triangles which are hidden, of facing backwards are deleted. Triangles which are half off the screen are divided so the unseen portion is not calculated.
4. Lighting. Added lighting, usually colored, is calculated, but not yet applied.
5. Triangle setup. The triangle coordinates are transformed to correspond to pixels on the screen (integers), and texture shading gradients are calculated.
6. Rasterization (these steps are now performed line-by-line, pixel-by-pixel):a. Perspective correction.
Triangles which recede into the distance (as a road might) are recalculated to make them appear to smaller as they recede.
b. Z-buffering. For each pixel, all textures that cover that pixel are stepped through, and the distance back from the front of the screen (the z coordinate) is stored in the z-buffer if it is in front (i.e. has a lower value for z) of the previous texture. Then only the texture that is in front of all the others will be displayed.
c. Texture lookup and filtering. The textures that will be displayed on each triangle are calculated using MIP-mapping, and bilinear (and trilinear) filtering.
d. Surface color correction. The color of the texture is blended with any colored lighting and shading to determine the true appearance of that texture.
e. Fog and haze. A light blue color is calculated for each pixel (the intensity depending on where it is in the z-buffer) to simulate fog and haze.
f. Blending. The colored textures are added to the haze and lighting to make the final scene, and the pixel is written to the frame buffer. In some 3D engines, the rasterization process can now loop back to step a if a second set of effects is needed. This happens with Quake/Quake2 on chipsets with only one texture engine, and will become more common in the future.7. Display.
The data in the frame buffer is sent to the Digital-to-Analog Converter (RAMDAC) for display.
Alpha-blending. This is
the method for generating fog, transparent clouds, haze, see-through props, and glare
effects that are considered essential to add the sense of realism to a 3D scene.
See-through clouds generated by alpha-blending, left, and without alpha-blending,
right.

Anisotropic filtering When a surface has a property of characteristic that is not the same in all directions (for example, woodgrain, tire marks on a runway), anisotropic filtering can be used to blend those features in one direction only (the lengthwise direction, the direction of the grain) so as not to diminish the separation detail.
Anti-aliasing: A method
to remove the jagged edges of objects. It looks very good, but is not supported in FS98,
because so few cards do anti-aliasing without a performance decrease. Can be done with
brute force by rendering a scene at 1600x1200 then downsampling to 800x600 (at the cost of
performance), or cleverly by antialiasing each edge (at the cost of developing hardware
that does this fast).
Here is a very-nicely anti-aliased scene, using the PixelSquirt chipset.

API. Game programmers use Application Programming Interfaces to help them program 3D functions more easily and so the program they write will run on more types of hardware.
Direct3D (Microsoft) This API has become fairly common now, but it is not well-loved by programmers because of its finicky, chipset-dependent nature. Most 3D games released have D3D support.
OpenGL (Silicon Graphics) Long the standard for high-end 3D work (like Jurassic Park and Titanic), it is finally making its way to the consumer level. GLQuake and Quake2 are the most notable consumer games programmed in OpenGL.
Glide (3Dfx) Mid 1996, 3Dfx released the Voodoo Graphics chipset which ruled the consumer 3D world for 18 months. Because of this, the API developed for this card, Glide, has become something of a standard by itself, even though it only runs on 3Dfx cards. It is the fastest API for a Voodoo card. If you have a Voodoo card and your sim supports D3D and Glide, use Glide.
Redline (Rendition): An API made specifically for the Verité chip family. Not well supported by game makers.
Bilinear filtering, or image
smoothing. A technique used to smooth the blocky appearance of
textures when viewed close-up. Textures in flight sims typically look best when viewed
from about 5000 feet. This means that when viewed from ground level, all we see are the
individual pixels that make up the texture. Filtering, or smoothing is used to blend
neighboring pixels so that they dont have a distinct edge; instead they look blurry.
Simmers generally favor the use of image smoothing, but there are drawbacks. Sometimes
images will be smoothed that shouldnt be smoothed, like aircraft textures or the
runway at Meigs in FS98. Smoothing can also affect the perception of speed when flying
close to the ground. FS98 can also do software image smoothing, but it is costly to the
frame-rate, and doesnt look as good as hardware filtering.
FS98 3D shot, with hardware image filtering on the
left, without image filtering on the right.

Bitmap or texture. A
picture of the surface of a plane or the ground, usually a .bmp file. Rendered over
polygons to create one section of the 3D world. It is possible to use 8-bit textures
instead of the usual 16-bit textures, with some loss of colors in the image, especially at
airports, where the green grass turns to gray concrete. Using 8-bit textures uses only
half the texture memory, however, and would be an advantage in low-memory cards at high
resolution and dense scenery.
16-bit (left) vs 8-bit textures (right).

Bump mapping. An
advanced method of displaying textures not as a smooth surface, but as a rough surface
which responds to different angles of illumination. Supported only in future hardware and
APIs.
The water texture here is the result of bump mapping. This is generated by
the PixelSquirt chipset.

"Cheesecloth." Sometimes used to describe the slightly uneven appearance of a 16-bit rendered scene, especially if dithering has been used. Commonly seen in the current (early 1998) versions of 3D hardware. This appearance is almost totally absent in 32-bit renderd scenes.
Frame buffer: The memory used to store the pictures you see on screen. Under Direct3D, there are actually two frame buffers. The front buffer is being displayed while the back buffer is being drawn. When the back buffer is complete it becomes the new front buffer and the old front buffer is cleared and the next frame is drawn there. Usually the swap has to wait for the next screen refresh to prevent the scene from changing midway down the screen. This wait is not visible, but it can cause a 0-7% drop in frame rate. Some hardware allows an option for triple buffering (Voodoo Rush, Voodoo2), with the advantage that the timing of the buffer swaps will coincide with the monitor refresh timing with no loss of performance.
Lens flare: One of
the tricks used to make a rendered image look more cinematic, seen as either rings of
light that might come from reflections in a camera lens photographing the scene, or as a
star-shaped glare around bright lights or flames. An effect typically used in military
flight sims.
A screenshot of the yet-to-be-released Fly! demonstrating lens flare, and a
different lens flare effect from the rocket motor in Longbow 2.


Level of Detail A method for lowering the total number of polygons describing a scene. Say there is an aircraft that is described by 500 polygons. Up close you want to see then all, but at a distance maybe 5 will suffice, because the polygons are so much smaller. FS98 currently uses all 500 polygons to describe the airplane, even if it is so distant that it appears only a few pixels big. Future API's and maybe flight sims will use this technique to speed scenery rendering. Lack of LOD in FS98 is one reason why custom scenery often has low frame rates.
MIP mapping: A technique
used to (a) speed rendering of distant textures and (b) remove
speckle from distant textures. Multiple textures are generated from a single
texture to aid in displaying that texture in a smaller form. For example, if we had a
128x128-pixel texture, the API would calculate versions of the texture at 64x64, 32x32,
16x16, 8x8, 4x4, 2x2, and even 1x1 pixels. Then when the texture is displayed at a
distance, where it would appear smaller, the program will already have a
smaller version to use. When our 128x128 texture is displayed at, say the 32x32 size,
without MIP-mapping the program has to figure out which pixel of the 128x128 texture
corresponds to each pixel in the 32x32 section on the screen. The program doesnt
choose the same pixel every frame, so a pixel will change color with every frame, causing
shimmer or speckle. But if we use the 32x32 texture, the pixels
will all match in every subsequent frame, and the image will look smooth rather than
grainy.
FS98 MIP-mapping, on (left), off (right).

Overclocking: The technique of running the 3D accelerator (or CPU) with a faster clock speed than was intended, and is done to increase performance. Overclocking voids any warranty, and you risk damaging your video card or CPU unless extra cooling is used. More info can be found in the Overclocking Guide at www.tomshardware.com and at the Voodoo and Vérité fan web sites.
Polygons or Triangles.
3D scenes are drawn using only triangles. This vastly simplifies the computer creation of
a 3D world. Triangles are defined as three x,y,z coordinates (one for each vertex),
a properly-oriented texture, and a shading definition. The illusion of curved surfaces
(fuselage, engines, wings, etc.) comes from well-applied shading of a flat polygon. A good
3D-accelerator card will put the textures together without any seams, white pixels that
flash where the triangles almost meet.
I need a PIC here that shows half a scene normally, and the other half
wire-framed.
Scaling. A 3D accelerator which doubles its performance when doubling the CPU clock rate is said to "scale well". The Voodoo2 performance scales very well with CPU clock rate. Hardware that scales well run "CPU-bound", which means the CPU is limiting the frame rate. Hardware that does not scale well is typically "fill-rate-" or "triangle-rate-bound", meaning the 3D hardware is limiting the frame rate. If you have a Pentium II, its best to have hardware that scales well (Riva 128 AGP or Voodoo2). If you have a Pentium, especially a slower Pentium, a few cards that run fill-rate-bound will generally give you better performance (Voodoo, Vérité2x00).
Setup Engine. More advanced 3D-hardware will have a setup engine. Before rendering, all polygons must be converted from the 3D world coordinates to screen coordinates. A hardware setup engine takes additional load off the CPU, which generally results in higher frame rates in FS98, especially in slower Pentium® computers. Only the Rendition Vérité chips and the Voodoo2 currently have hardware triangle setup. Triangle setup comprises about 15% of the entire geometry and texture setup process. Some newer cards, recently announced, will also do geometry setup in hardware, with additional performance enhancement.
SLI. Scan Line Interlace, is a method of having two cards do the work of one. Two Voodoo2 cards can be placed in your computer side-by-side and connected by a short computer cable. When this happens, one will process all the odd-numbered scan lines, and the other will process all the even-numbered scan lines, so performance goes up by about 50%, and the effective frame buffer is doubled. Texture memory, however, is duplicated in both cards.
Stencil Buffer. A buffer used to help draw overlaid textures. Not currently supported in DirectX5, but is supported in some newer hardware.
Strips & Fans. A
technique of abbreviating the definition of a polygon to speed the the manipulation of
fixed assemblies of triangles, during the initial geometry calculations (rotations and
translations) and lighting calculations. The triangles are then divided up and sent to the
3D card. Not currently supported by any API, but will be a part of the next release
of Direct3D 6.0 and Glide 3.0. In the example below, the reduction of the number of
vertices involved in the calculations drops to about half, so the calculation time for
those vertices also halves.

Tessellation. Decomposing a complex surface into a series of simple ones that approximate the complex surface. When drawing a surface, most API's have functions that allow the programmer to define the surface and have the program generate and place a number of triangles that define that surface. This is necessary because no consumer hardware supports true curved surfaces, so they must be approximated by many triangles. This approximation is called Tessellation, and the degree of Tessellation can be controlled so that a surface looks very smooth (with correspondingly slow frame rates), or it can look very Tessellated, where you can see the triangles that define it (with higher frame rates). FS98 does not currently employ Tessellation.
Trilinear filtering. A better-quality version of bilinear
filtering currently supported by Voodoo2 boards running Direct3D programs.
Equivalent scenes, rendered with trilinear filtering above, bilinear filtering
below.


Triple-buffering 3Dfx cards, if they have 4 MB frame buffer and are running at 640x480 (with a z-buffer) or 800x600 (without a z-buffer), can use 3 frame buffers instead of 2. Normally the front buffer is being displayed, and the back buffer is being drawn. When the back buffer is finished, it has to wait until the current scan of the screen is done (the top to bottom scan of the electron beam illuminating the pixels), and during that wait your system just sits there doing nothing. Then the buffers are swapped, and the next scene starts drawing. If you have very fast refresh rates there isn't much wait for the buffer swap. But if you have slow refresh rates, the wait can be considerable. To stop this, 3Dfx drivers (for the Rush and Voodoo2) can enable a third frame buffer, so when it is done with the back buffer it starts immediately on the next one.
Volumetric effects. A
method to define lights more realistically, like a street lamp in the fog, or the glow of
your landing lights just before you break out of the clouds on a nighttime approach.
Volumetric fog is calculating how much fog there is between the point of view and a
surface for each pixel, giving the fog an appearance of being 'thicker' in one spot than
in another. Currently rendered in ksoftware only, a technology to look for in future
hardware.
Here's a shot from the upcoming Fly!, with volumetric effects used in the landing
lights.

Z-Buffer. A third buffer (or a fourth if triple buffering is enabled) where depth data is stored, to help hardware to sort out which textures are visible and which are hidden. FS98, like most Direct3D programs, does not use a z-buffer. OpenGL and Glide programs rely on the Z-buffer, however, with a drastic performance penalty if not supported in hardware. 3D hardware with a 16- to 32-bit z-buffer are more accurate than hardware with a 4- to 8-bit z-buffer, so objects which should be behind another won't accidentally 'peek through' as often.