Game Development Dictionary
Graphics
Term Name  Description  

Bresenham's Algorithm 
An algorithm to compute which cells in a grid should be drawn in order to display a line between any two cells in the grid. Used to draw arbitrary lines to the screen.  
Vector 
In 3D graphics, a set of numbers representing magnitude and direction.  
Blitting 
A method of outputting sprites by only showing nontransparent colors, without any checking during run time. This is done by precompiling a bmp into a piece of code that contains a set of screen memory writes that only include nontrasparent colors.  
VESA 
Video Electronics Standards Association. An organization that sets standards for video and multimedia in PCs. They created the Super VGA (SVGA) standard and the VESA Local Bus.  
Bezier Surface 
A curved surface created from a mesh of control points.  
Cel Shading 
A technique which causes rendered objects to look as though they are handdrawn, cartoon images.  
Color Cycling 
Normally used with Indexed Color, this is a method of changing the index information for an image so that the colors change in a way that makes it appear to animate or cycle colors.  
Cube Mapping 
An alternative to sphere mapping used in environment mapping, cube mapping gets a 'screenshot' looking in 6 different directions and arranges them in a rolled out cube. When applied, the object appears to reflect the environment around it. A 'cheap' alternative to raytracing reflections, cube mapping is fast enough for realtime.  
Bounding Box 
A box approximation of an object used for collision detection. An axisaligned bounding box (AABB) is defined by the minimum and maximum 'x', 'y', and 'z' values. An oriented bounding box (OBB), however, generally gives a closer fit, because it is always aligned with the object.  
ZBuffer 
An array of numbers that store the proper point on an polygon and its distance from the camera. The array is usually comprised of all the pixels in a screen and only the closest points are stored and then drawn. This method eliminates the problem of overlapping objects.  
CrossProduct 
Cross Product (Vector Product) The cross product is a little more tricky. The cross product between two vectors yields a third vector which is perpendicular to the first two. For vectors A, B, and a resultant C : A X B = C Or in component form : ( A.x , A.y , A.z ) X ( B.x , B.y , B.z ) = ( A.y * B.z  A.z * B.y , A.z * B.x  A.x * B.z , A.x * B.y  A.y * B.x)
This is commonly utilized to compute something known as a surface normal. As by the cross product formula, a normal is simply a vector that is perpendicular to some plane. In graphics, this plane is usually a polygon of some type.
Please note that A X B <> B X A . Ordering is very important in cross products. What actually happens is that B X A will yield a vector which points in the opposite direction of A X B.


Backface Removal 
See Backface Culling.  
Voxel 
Volume pixel. These are basically another way of drawing 3D objects, instead of defining them as the polygons that make up the outside of an object, you define it as a number of points. Voxels can be the size of a pixel on the screen, or they can be large spheres, sprites or any graphical representation of a point.  
DirectGraphics 
Introduced in DirectX 8; DirectGraphics combines both Direct3D and DirectDraw. (DirectDraw was removed after DirectX 7)  
DotProduct 
Dot Product (Scalar Product) The dot product shouldn't cause you any trouble. It is simply a way to multiply vectors. Keep in mind that we would normally describe these vectors in unit vector notation. Here is a typical representation of a dot product for vectors A and B: A · B Or we can describe the same equation in terms of vector components: A · B = A.x * B.x + A.y * B.y + A.z * B.z Using a Dot Product, we can obtain the angle between two vectors A and B as follows: Cos q = (A · B) / (A · B) q = arcCos ((A · B) / (A · B)) Okay, lets break down what just occurred above. What we are saying is that the cosine of theta is equal to the dot product of A and B divided by the product of A and B's magnitudes. The magnitude of a vector V is denoted by : V
One can calculate the magnitude of a vector simply by taking the square root of each term in the vector squared. Ie. A = sqrt (A.x * A.x + A.y * A.y + A.z * A.z)


Corona 
The artifacts that appear around a bright light source. Often in circular or star like shapes.  
Volume Rendering 
A method of rendering that deals with the space that is used, as opposed to the faces that make up the outside of an object. Originally used for medical purposes only, it has also been adapted to do environmental effects, such as light through fog.  
Blit 
Bit Block Transfer (properly abbreviate BLT). The process of transferring a bitmap to or from a display surface via the blitter.  
Boolean Geometry 
Named after mathematician George Boole Boolean geometry refers to combining multiple objects. Common operations include "unions" which combine two shapes and "difference" operations. Difference operations can be used to cut one shape out of another. 3d Studio Max and the game Red Faction for the Playstation II are good examples of how Boolean geometry can be used in practical applications.  
Environment Mapping 
An effect where an object reflects its surroundings, much like chrome.  
Bezier Patch 
See Bezier Surface.  
CG 
nVidia's (relatively) simple shader language. It's currently one of the most commonly used shader languages, and it supports OpenGL and Direct3D even on nonnVidia cards. Toolkit and information can be found at www.developer.nvidia.com  
Cartesian Coordinate System 
The standard coordinate system. With three dimensions, there are three scalars, x, y, and z used to represent a point at a given distance from a reference point, the origin.  
Color Depth 
Refers to the amount of memory used to represent a single pixel, and is most commonly measured in bits. Common values are 8bit, 16bit, 24bit, and 32bit. More bits means a wider range of colors.  
GLUT 
The OpenGL Utility Toolkit. This set of libraries provides a set of helper functions to OpenGL, including methods to abstract the windowing system (for crossplatform development), rendering "standard" 3D objects, etc. For more info, visit the GLUT homepage 