Hidden Surface Removal
Tri-Linear MIP Mapping
Displayed representation of a scene or an object along two axes of reference: height and width (x and y).
Displayed representation of a scene or an object that appears to have three axes of reference: height, width, and depth (x, y, and z).
The process of 3D graphics can be divided into three-stages: tessellation, geometry, and rendering. In the tessellation stage,
a described model of an object is created, and the object is then converted to a set of polygons. The geometry stage includes
transformation, lighting, and setup. The rendering stage, which is critical for 3D image quality, creates a two dimensional display
from the polygons created in the geometry stage.
The real world is composed of transparent, translucent, and opaque objects. Alpha blending is a technique for adding transparency
information for translucent objects. It is implemented by rendering polygons through a stipple mask whose on-off density is proportional
to the transparency of the object. The resultant color of a pixel is a combination of the foreground and background color.
Typically, alpha has a normalized value of 0 to 1 for each color pixel.
new pixel = (alpha)(pixel A color) + (1 - alpha)(pixel B color)
An extra Color channel to hold transparency information; pixels become quad values (RGBA). In a 32-bit frame buffer there are
24 bits of color, 8 each for red, green, and blue, along with an 8-bit alpha channel.
Anti-aliasing is sub pixel interpolation, a technique that makes edges appear to have better resolution.
Effects, such as fog and depth cueing, that improve the rendering of real-world environments.
A Bitmap is a pixel by pixel image.
Bilinear filtering is a method of anti-aliening texture maps. A texture-aliening artifact occurs due to sampling on a finite
pixel grid. Point-sampled telexes jump from one pixel to another at random times. This aliening is very noticeable on slowly rotating
or moving polygons. The texture image jumps and shears along pixel boundaries. To eliminate this problem, bilinear filtering
takes a weighted average of four adjacent texture pixels to create a single telex.
The BitBLT is the single most important acceleration function for windowed GUI environments. A BitBLT is simply the movement
of a block of data from one place to another, taking into account the special requirements and arrangements of the graphics memory.
For example, this function is utilized every time a window is moved; in which case, the BitBLT is a simple Pixel Block Transfer.
More complicated cases may occur where some transformation of the source data is to occur, such as in a Color Expanded Block
Transfer, where each monochromatic bit in the source is expanded to the color in the foreground or background register before
being written to the display.
Blending is the combining of two or more objects by adding them on a pixel-by-pixel basis.
A personal computer may transfer data from disk to CPU, from CPU to memory, or from memory to the display adapter. A PC cannot afford to have separate circuits
between every pair of devices. A mechanical switch, like the old phone systems used, would be too slow. The solution is a Bus. The Bus is simply a common set
of wires that connect all the computer devices and chips together. Some of these wires are used to transmit data. Some send housekeeping signals, like the clock
pulse. Some transmit a number (the "address") that identifies a particular device or memory location. The computer chips watch the address wires and respond when
their identifying number is transmitted. They then transfer data on the other wires
A feature of PCI buses that allows a card with this feature to retrieve data directly from system memory without any interaction
with the host CPU.
Chroma Keying or texture transparency is the ability to recognize a key color within a texture map and make it transparent during
the texture mapping process. Since not all objects are easily modeled with polygons, chroma keying is used to include complex
objects in a scene as texture maps.
Depth cueing is the lowering of intensity as objects move away from the viewpoint.
Dithering is a technique for archiving 24-bit quality in 8 or 16-bit frame buffers. Dithering uses two colors to create the
appearance of a third, giving a smooth appearance to an otherwise abrupt transition.
A method of using two buffers, one for display and the other for rendering. While one of the buffers is being displayed, the
other buffer is operated on by a rendering engine. When the new frame is rendered, the two buffers are switched. The viewer sees
a perfect image all the time.
fab (fabrication unit)
It takes a long time to manufacture a CPU. 5 to 30 million transistors must be placed on a tiny silicon wafer. Actually,
it required 90 workdays 24 hours round-the-clock to produce a Pentium CPU. CPUs are manufactured in large wafers containing
maybe 140 to 150 CPUs. Usually 110 to 120 of these perform perfectly. The rest are discarded. The wafers are burned, etched,
and treated in hour long processes - layer by layer. In the CPU there are up to 20 layers of silicon wafers with millions
of micro transistors. (Related information)
The flat shading method is also called constant shading. For rendering, it assigns a uniform color throughout an entire polygon.
This shading results in the lowest quality, an object surface with a faceted appearance and a visible underlying geometry that
Fog is the blending of an object with a fixed color as its pixels become farther away from the viewpoint.
The characteristics of displays using phosphors (as well as some cameras) are nonlinear. A small change in voltage when the voltage
level is low produces a change in the output display brightness level; but this same small change in voltage at a high voltage
level will not produce the same magnitude of change in the brightness output. This effect, or actually the difference between what
you should have and what you actually measured, is known as gamma.
Before being displayed, linear RGB data must be processed (gamma corrected) to compensate for the gamma (nonlinear characteristics)
of the display.
Gouraud shading, one of the most popular smooth shading algorithms, is named after its French originator, Henri Gouraud. Gouraud
shading, or color interpolation, is a process by which color information is interpolated across the face of the polygon to
determine the colors at each pixel. It assigns color to every pixel within each polygon based on linear interpolation from
the polygon's vertices. This method improves the 'blocky' (see Flat Shading) look and provides an appearance of plastic or metallic
Hidden Surface Removal
Hidden Surface Removal or visible surface determination entails displaying only those surfaces that are visible to a viewer because
objects are a collection of surfaces or solids.
Interpolation is a mathematical way of regenerating missing or needed information. For example, an image needs to be scaled
up by a factor of two, from 100 pixels to 200 pixels. The missing pixels are generated by interpolating between the two pixels
that are on either side of the pixel that needs to be generated. After all of the 'missing' pixels have been interpolated, 200
pixels exist where only 100 existed before, and the image is twice as big as it used to be.
There are many techniques for creating realistic graphical effects to simulate a real-life 3-D object on a 2-D display. One technique
is lighting. Lighting creates a real-world environment by means of rendering the different grades of darkness and brightness
of an object's appearance to make the object look solid.
A line buffer is a memory buffer used to hold one line of video. If the horizontal resolution of the screen is 640 pixels and
RGB is used as the color space, the line buffer would have to be 640 locations long by 3 bytes wide. This amounts to one location
for each pixel and each color plane. Line buffers are typically used in filtering algorithms.
Multum in Parvum (Latin) means 'many in one'. A method of increasing the quality of a texture map by applying different-resolution
texture maps for different objects in the same image, depending on their size and depth. If a texture-mapped polygon is smaller
than the texture image itself, the texture map will be undersampled during rasterization. As a result, the texture mapping will be
noisy and 'sparkly'. The purpose of MIP mapping is to remove this effect.
Programs break up the tasks they need to do into threads. By far, the majority of applications arewritten to be single-threaded.
This means that the program executes in a linear fashion, and will only use one CPU. A multithreaded application is written in a
way that lets it execute any tasks that it can in parallel across multiple processors. Writing a multithreaded program takes more
time and skill than writing a single-threaded program because there are additional considerations such as thread scheduling that
has to happen. Scheduling is what keeps the threads in synch, and makes sure that everything happens in order.
The effect of one object in 3-D space blocking another object from view.
Palletized Texture means compressed texture formats, such as 1-, 2-, 4-, and 8-bit instead of 24-bit; this allows more textures
to be stored in less memory.
A particular way to do texture mapping; it is extremely important for creating a realistic image. It takes into account the effect
of the Z value in a scene while mapping texels onto the surface of polygons. As a 3D object moves away from the viewer, the length
and height of the object become compressed, making it appear shorter. Without perspective correction, objects will appear
to shift and 'tear' in an unrealistic way. True perspective correction is that the rate of change per pixel of texture is proportional
to the depth. Since it requires a division per pixel, perspective correction is very computing intensive.
Phong shading is a sophisticated smooth shading method, originated by Phong Bui-tuong. The Phong shading algorithm is best known
for its ability to render precise, realistic specula highlights. During rendering, Phong shading achieves excellent realism by
calculating the amount of light on the object at tiny points across the entire surface instead of at the vertices of the polygons.
Each pixel representing the image is given its own color based on the lighting model applied at that point. Phong shading requires
much more computation for the hardware than Gouraud shading.
The process of reducing three dimensions to two dimensions for display is called Projection. It is the mapping of the visible
part of a three dimensional object onto a two dimension screen.
Translating an image into pixels.
The process of creating life-like images on a screen using mathematical models and formulas to add shading, color, and lamination to
a 2D or 3D wireframe.
"Rendering Engine" generically applies to the part of the graphics engine that draws 3D primitives, usually triangles
or other simple polygons. In most implementations, the rendering engine is responsible for interpolation of edges and "filling
in" the triangle.
Test pixel coordinates against clip rectangles and reject them if outside.
A set-up engine allows drivers to pass polygons to the rendering engine in the form of raw vertex information, subpixel polygon
addresses. Whereas, most common designs force the host CPU to pre-process polygons for the rendering engine in terms of delta
values for edges, color, and texture. Thus, a set-up engine moves processing from the host CPU to the graphics chip, reducing bus
bandwidth requirements by 30% for small, randomly placed triangles and by proportionately more for larger polygons.
In raster graphics architecture a primitive is formed by scan conversion where each scan line intersects the primitive at two
ends, P left and P right. A contiguous sequence of pixels on the scan line between P left and P right is called a Span. Each
pixel within the span contains the z, R, G, and B data values.
Processing 3D graphics can be pipelined into three-stages: tessellation, geometry, and rendering. Tessellation is the process of subdividing
a surface into smaller shapes. To describe object surface patterns, tessellation breaks down the surface of an object into manageable
polygons. Triangles or quadrilaterals are two usually used polygons in drawing graphical objects because computer hardware can easy
manipulate and calculate these two simple polygons.
An object divided into quads and subdivided into triangles for convenient calculation.
An interpolation technique used to remove texture distortion, staircasing or jagged edges, at the edges of an object.
Removing the undesirable distortion of a raster image, also called aliasing artifacts, such as sparkles and blockiness, through
interpolation of stored texture images.
Texture mapping is based on a stored bitmap consisting of texture pixels, or texels. It consists of wrapping a texture image onto
an object to create a realistic representation of the object in 3D space. The object is represented by a set of polygons,
usually triangles. The advantage is complexity reduction and rendering speed, because only one texel read is required for
each pixel being written to the frame buffer. The disadvantage is the blocky image that results when the object moves.
Change of coordinates; a series of mathematical operations that act on output primitives and geometric attributes to convert
them from modeling coordinates to device coordinates.
Based on bilinear filtering, trilinear filtering takes the weighted average of two levels of bilinear filtering results to create
a single texel. The resultant graphics image is smoother and less flashy.
Tri-linear MIP Mapping
A method of reducing aliasing artifacts within texture maps by applying a bilinear filter to four texels from the two nearest
MIP maps and then interpolating between the two.
A part of off-screen memory that holds the distance from the viewpoint for each pixel, the Z-value. When objects are rendered
into a 2D frame buffer, the rendering engine must remove hidden surfaces.
A process of removing hidden surfaces using the depth value stored in the Z-buffer. Before bringing in a new frame, the rendering
engine clears the buffer, setting all Z-values to 'infinity'. When rendering objects, the engine assigns a Z-value to each
pixel: the closer the pixel to the viewer, the smaller the Z value. When a new pixel is rendered, its depth is compared with
the stored depth in the Z-buffer. The new pixel is written into the frame buffer only if its depth value is less than the stored
A process of removing hidden surfaces by sorting polygons in back-to-front order prior to rendering. Thus, when the polygons
are rendered, the forward-most surfaces are rendered last. The rendering results are correct unless objects are close to or
intersect each other. The advantage is not requiring memory for storing depth values. The disadvantage is the cost in more CPU
cycles and limitations when objects penetrate each other.