2D Graphics
Displayed representation of a scene or an object along two axes of reference:
height and width (x and y). |
3D Graphics
Displayed representation of a scene or an object that appears to have three
axes of reference: height, width, and depth (x, y, and z). |
3D Pipeline
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. |
Alpha Blending
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) |
Alpha Buffer
An extra 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
Anti-aliasing is subpixel interpolation, a technique that makes edges appear
to have better resolution. |
Atmospheric Effect
Effects, such as fog and depth cueing, that improve the rendering of real-world
environments. |
Bitmap
A Bitmap is a pixel by pixel image. |
Bilinear Filtering
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. |
BitBLTs
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
Blending is the combining of two or more objects by adding them on a pixel-by-pixel
basis. |
Chroma Keying
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
Depth cueing is the lowering of intensity as objects move away from the
viewpoint. |
Dithering
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. |
Double Buffering
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. |
DRAM
Dynamic Random Access Memory is the memory at any location in a computer
that can be accessed immediately for reading and writing operations. |
EDO DRAM
A type of DRAM that has enhanced readability in the Extended-Data-Out mode. |
Flat Shading
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 looks 'blocky'. |
Fog
Fog is the blending of an object with a fixed color as its pixels become
farther away from the viewpoint. |
Gamma
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. |
Gamma Correction
Before being displayed, linear RGB data must be processed (gamma corrected)
to compensate for the gamma (nonlinear characteristics) of the display. |
Gouraud Shading
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 surfaces. |
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
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. |
Lighting
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. |
Line Buffer
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. |
MIP Mapping
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. |
Occlusion
The effect of one object in 3-D space blocking another object from view. |
Palletized Texture
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. |
Perspective Correction
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
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. |
Projection
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. |
Rasterization
Translating an image into pixels. |
Rendering
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
"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. |
Scissors Clip
Test pixel coordinates against clip rectangles and reject them if outside. |
Set-up Engine
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. |
SDRAM
Synchronous DRAM is a type of DRAM to which reads or writes can be performed
synchronously with the memory clock and at much higher speeds than with
Fast-Page or EDO DRAM. |
SGRAM
Synchronous Graphics Random Access memory (SGRAM) is a type of memory that
is optimized for graphics use. SGRAM is capable of running at much higher
speeds than fast page or EDO DRAM. SGRAM is able to execute a small number
of frequently executed operations, such as buffer clears, specific to graphics
applications independently of the controller. |
Span
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. |
Tessellation
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. |
Texture Anti-aliasing
An interpolation technique used to remove texture distortion, staircasing
or jagged edges, at the edges of an object. |
Texture Filtering
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
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. |
Transformation
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. |
Tri-linear Filtering
Based on bilinear filtering, trilinear filtering takes the weighted average
of two levels of bilinear filtering results to create a single telex. 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. |
Z-buffer
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. |
Z-buffering
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 one. |
Z-sorting
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. |