[ Previous | Contents | Glossary | Home | Search ]
GL3.2 Version 4.1 for AIX: Programming Concepts

Special Terms Used in GL

ambient light. Light that reflects off of one or more surfaces in the scene before arriving at the target surface. Ambient light is assumed to be non-directional, and is reflected uniformly in all directions by the reflecting surface. In the GL, ambient light is mocked up by use of ambient terms in the lighting equation, rather than actually computing the reflections.

aspect ratio. The ratio of the height of a primitive to its width. A rectangle of width ten inches and height five inches has an aspect ratio of 10/5 or 2.

asynchronous. Not synchronized in time. For example, input events occur at the choosing of the user--the program may read them later.

attribute. A parameter that can affect the appearance of a drawing primitive. For instance, color is an attribute. If the color is set to "RED", it will remain red until changed, and everything that is drawn will be drawn in red. Other attributes include linestyle, linewidth, pattern, and font. For a list of attributes and pipeline options, see the greset subroutine. See also pipeline options.

azimuthal angle. If a primitive is sitting on the ground, with its z coordinate straight up, the azimuthal viewing angle is the angle the observer makes with the y axis in the x-y plane. If the observer walks in a circle with the primitive at the center, the azimuthal angle is the only thing that varies.

B-spline cubic curve. A cubic spline approximation to a set of four control points having the property that slope and curvature are continuous across sets of control points. See also parametric cubic curve.

backfacing polygon. A polygon whose vertices appear in clockwise order in screen space. If backface culling is enabled, such polygons are not drawn.

basis. In the GL, a curve or patch basis is a 4x4 matrix that controls the relationship between control points and the approximating spline. B-splines, Bezier curves, and Cardinal splines all differ in that they have different bases.

Bezier cubic curve. A cubic spline approximation to a set of four control points that passes through the first and fourth control points, and has a continuous slope where two spline segments meet. See also parametric cubic curve.

bitplane. A bitplane supplies one bit of color information per pixel on the display. Thus, an eight bitplane system allows 2 to the eighth power different colors to be displayed at each pixel.

blit. Bit block transfer.

Boolean. A value of TRUE or FALSE, where TRUE=1 AND FALSE=0

bounding box. A rectangle (2D) that bounds a primitive. A bounding box can be used to determine whether the primitive lies inside a clipping region. See clipping.

button. Buttons include those on the keyboard, mouse, light pen, or buttons on the dial and button box.

Cardinal cubic spline curve. A cubic spline whose endpoints are the second and third of four control points. A series of cardinal splines will have a continuous slope, and will pass through all but the first and last control points. See also parametric cubic curve.

clipping. If a primitive overlaps the boundaries of a window, it is clipped. The part of a primitive that appears in the window is displayed and the rest is ignored. There are several types of clipping that occur in the system. Three-D drawing primitives are clipped to the boundaries of a frustum (for perspective transformations) or to a rhombohedron (for orthographic projections). This 3-D clipping applies as well to the origin of character strings, but not to the characters themselves. A 2-D clipping is also performed, where all drawing is clipped to the boundaries of AIXwindows. The area of 2-D clipping can be controlled with the screenmask. See clipping planes, fine clipping, gross clipping, screenmask, transformation, window.

clipping planes. Before clipping occurs, primitive space is mapped to normalized device coordinates. The clipping planes x= +-w; y= +-w; or z= +-w correspond to the left, right, top, bottom, near, and far planes bounding the viewing frustum. See frustum.

color map. A lookup table that translates color indexes into RGB triplets. The lookup table is sandwiched between the frame buffer and the digital-to-analog converters (DACs) and serves to translate the color index value stored in the frame buffer into the red, green, and blue values required by the DACs. On most hardware configurations, the color map is either 8 or 12 bits deep, allowing the simultaneous display of 256 or 4096 colors. On most hardware configurations, the DACs have an 8-bit per color accuracy, allowing the user to choose among 16,777,216 colors.

color map mode. A configuration of the hardware that passes the values stored in the frame buffer through a color lookup table (color map), from which the red, green, and blue values are obtained for display. Entries in the color map are referred to as color indexes. In color map mode, the values stored in the frame buffer are treated as color map indexes. See RGB mode.

color ramp. A progression of colors in a color map. Most color ramps are smooth, and have only a small number, if any, of discontinuities. For instance, if the full set of colors of the rainbow were loaded into the color map, that would constitute a color ramp.

concatenation. In the GL, concatenation refers to combining a series of geometric transformations--rotations, translations, and scaling. Concatenation of transformations corresponds to matrix multiplication.

concave and convex polygons. A polygon is convex if the line segment joining any two points in the figure is completely contained within the figure. Non-convex polygons are sometimes called concave. Algorithms that render only convex polygons are much simpler than those that can render both convex and concave polygons.

control points. Points in real space that control the shape of a spline curve. The system provides hardware support for wire frame rational cubic splines, and for NURBS surfaces, the specifications of which require four control points.

culling. If a primitive is smaller than the minimum size specified in the command, it is culled: no further commands in the primitive are interpreted. See clipping, pruning.

current character position. The two-dimensional screen coordinates where the next character string or pixel read/write will occur.

current color. The color that is employed to color all subsequent drawing primitives. All drawing primitives are drawn with this color until it is changed.

current graphics position. The homogeneous three-dimensional point form which geometric drawing commands will draw. The current graphics position is not necessarily visible.

current transformation matrix. The transformation matrix on top of the matrix stack. All points passed through the graphics pipeline are multiplied by the current transformation matrix before being passed on. The current transformation matrix is a concatenation of the current modeling and viewing matrices. See transformation.

current window. The window to which the system directs the output from graphics routines. See also window.

cursor. A primitive such as an arrowhead which can be moved about the screen by means of an input device (typically a mouse).

cursor glyph. A 16x16 or 32x32 raster pattern (bitmap that determines the shape of the cursor. A GL cursor glyph can be one or two bits deep; thus, a GL cursor can use up to three colors. Color 0 is always transparent.

depth-cueing. Varying the intensity of a line with z-depth. Typically, the points on the line further from the eye are darker, so the line seems to fade into the distance.

device. A valuator, button, or the keyboard. Buttons have values 0 or 1 (up or down); valuators (mouse, dials) return values in a range, and the keyboard returns ASCII values.

dial and switch box. An I/O device with 8 dials (valuators) and 32 switches. The switch box is also called a button box or the lighted programmable function keys (LPFKs).

digital-to-analog converter (DAC). A highly specialized chip that converts the digital values coming out of the frame buffer into the rapidly varying analog voltage levels that are required by the monitor.

display list (object). Also called an object. It is a sequence of drawing commands that have been compiled into a unit. Conceptually, a display list is like a macro: it can be invoked multiple times simply by referring to its name. The object can be instantiated at different locations, sizes, and orientations by appropriate use of the transformation matrices. For instance, series of polygons arranged in the shape of a bolt can be compiled into an object. The bolt can then be drawn multiple times by invoking its display list.

dithering. A technique of interleaving dark and light pixels so that the resulting image looks smoothly shaded when viewed from a distance.

double buffer mode. A mode in which two buffers are alternately displayed and updated. A new image can be drawn into the back buffer while the front buffer (containing the previous image) is displayed. See single buffer mode.

event queue. A queue that records changes in input devices--buttons, valuators, and the keyboard. The event queue provides a time-ordered list of input events.

eye coordinates, eye space. The coordinate system in which the viewer's eye is located at the origin, and thus all distances are measured with respect to the eye. Viewing transformations map from world coordinates into eye coordinates, and projection transformations map from eye coordinates to normalized device coordinates. Also called viewing coordinates or viewer coordinates. See modeling coordinates, world coordinates, screen coordinates, transformation.

field of view. The extent of the area which is under view. The field of view is defined by the viewing matrix in use.

fine clipping. Fine clipping masks all drawing commands to a rectangular region of the screen. It would be unnecessary except for the case of character strings. The origin of a character string after transformation may be clipped out by gross, or 3-D, clipping, and the string would not be drawn. By doing gross clipping with the viewport and fine clipping with the screen masks, strings can be moved smoothly off the screen to the left or bottom. See gross clipping.

font. A set of characters in a particular style. See raster font, primitive font.

forward difference matrix. A 4x4 matrix that is iterated by adding each row to the next and the bottom row is output as the next point. Points so generated generally fall on a rational cubic curve.

frame buffer. A quantity of video RAM (VRAM) that is used to store the image displayed on the monitor.

The frame buffer is the electronic canvas on which every drawing primitive is drawn. It is one of the last stops in the graphics pipeline, where the final image resides in the form of digitally coded intensities and brightnesses. These are converted into analog voltage signals 60 times a second and sent to the electron guns of the monitor.

The dimensions of the frame buffer can be changed with GL. Typically, the main frame buffer might be 1024 pixels vertical by 1280 pixels horizontal by 8 color bits. The overlay planes might by 1024x1280x2. The z-buffer is considered a frame buffer, although it is not directly visible from the monitor. (There is no direct means of displaying the contents of the z-buffer, although this can be done indirectly.) The size of the z-buffer is typically 1024x1280x24. The cursor is a very specialized form of a frame buffer; one which can move around. The typical cursor is 32x32x2 in size.

front and back buffers. In double buffer mode, the main frame buffer bitplanes are separated into two sets--the front and back buffers. Bits in the front buffer planes are visible and those in the back buffer are not. Typically, an application draws into the back buffer and views the front buffer for dynamic graphics.

frustum. A truncated, four-sided pyramid; that is, a pyramid with the point cut off. In a perspective projection, the shape of the clipping volume is a frustum. The bottom of the frustum is referred to the far clipping plane, the top of the frustum is the near clipping plane, and the sides are respectively the top, left, bottom, and right clipping planes. In an orthographic projection, the clipping volume is a parallelepiped.

gamma correction. A logarithmic assignment of intensities to lookup table entries for shading applications. This is required since the human eye perceives intensities logarithmically rather than linearly.

gamma ramp. A set of three lookup tables, one for each of the colors red, green, and blue, attached to the electron guns of the monitor. Entries in the gamma lookup table can be set to adjust for variations in the phosphor quality between different brands of monitors. Usually, a logarithmic curve is loaded into the gamma lookup tables. (See gamma correction.) The gamma lookup tables are not a subset of the color map tables, but a separate entity.

Gouraud shading. A method of shading polygons smoothly based on the intensities at their vertices. The color is uniformly interpolated along each edge, and then the edge values are uniformly interpolated along each scan line. For realistic shading, colors should be gamma corrected.

graphics pipeline. The sequence of steps that a graphics primitive goes through before it becomes visible on the screen:

gross clipping. Also known as 3-D clipping this is the clipping that occurs in normalized device coordinates, against the sides of the perspective frustum. All 3-D primitives undergo this clipping; in particular, the origin of text strings (but not individual letters) are clipped in this way. See clipping planes, fine clipping.

hidden surface. A surface of a geometric primitive that is not visible because it is obscured by other surfaces. See z-buffering.

hit. Also called pick hit or select hit. A hit occurs whenever a drawing primitive draws within the picking or selecting region. A hit is reported back to the user only if the name stack has changed since the last hit. In other words, multiple hits may occur although only one pick/select even is reported. See name stack, picking, selecting.

homogeneous coordinates. A four-dimensional method of representing three-dimensional space. A point (x, y, z, w) in homogeneous coordinates is used to represent a point (X, Y, Z) in three-dimensional space by taking X=x/w, Y=y/w, Z=z/w.

immediate mode. In this mode, graphics commands are executed immediately rather than being compiled into a display list.

instantiate. To make an instance of. To replicate.

linear interpolation. A method of approximating data values by assuming that they lie along a straight line. Typically, the two end data points are known. For example, if A is the value at a, and B is the value at b, and a<t<b, then the value C at t is (from the two-point formula):

linestyle. The pattern used to draw a line. A linestyle might be solid or broken into a pattern of dashes.

linewidth. The width of a line in pixels.

matrix stack. A stack of matrices with hardware and software support. The top matrix on the stack is the current transformation matrix, and all points passed through the graphics pipeline are multiplied by that matrix. It is a concatenation of the current modeling and viewing transformations. See current transformation matrix.

mirroring. The creation of a mirror image of a primitive.

modeling coordinates, modeling space. The coordinate system in which all drawing primitives do their drawing. The user can select the position and orientation of the modeling space with regard to the world space by means of translations, rotations, scales, or generalized transformations. The relation between modeling coordinates and world coordinates is determined by the modeling matrix. Modeling coordinates are a useful conceptual device when drawing complex or repetitive scenes. For instance, a paper clip can be defined once in modeling coordinates, and then drawn hundreds of times by moving the modeling coordinates around in world space. See eye coordinates, screen coordinates, world coordinates, transformation.

name stack. A stack of 16-bit integers, controllable by the user, used to establish what drawing primitive caused a pick or select event. The name stack is written into the pick/select event buffer every time a pick or select event occurs. The entire event buffer is returned to the user at the end of the pick/select episode.

normalized device coordinates (NDC). Coordinates in the range from -1 to 1. All primitives that draw within the unit cube are visible on the screen (unless masked by the screenmask). See transformation, unit cube.

NTSC. A video display and timing format that is the American broadcast standard. Most video tape recorders record and play back NTSC signals. Specialized hardware is required to convert from RGB monitor outputs to an NTSC signal.

null-terminated. Having a zero byte at the end. In the C language, character strings are stored this way internally.

NURBS. (Non-Uniform Rational B-spline). A parametric surface that can be trimmed with non-uniform rational B-spline curves and piecewise linear curves.

object. Also called a display list. It is a sequence of drawing commands that have been compiled into a unit. Conceptually, a display list is like a macro: it can be invoked multiple times simply by referring to its name. The object can be instantiated at different locations, sizes, and orientations by appropriate use of the transformation matrices. For instance, series of polygons arranged in the shape of a bolt can be compiled into an object. The bolt can then be drawn multiple times by invoking its display list.

object space. The space in which a graphics object is defined. A convenient point is chosen as the origin and the object is defined relative to this point. When an object is rendered by a call to the callobj subroutine, it is rendered in modeling coordinates, and the object space becomes (for that moment) the same as the modeling space.

orthographic projection. A representation in which the lines of a projection are parallel. Orthographic projections lack perspective foreshortening and its accompanying sense of depth realism. Because they are simple to draw, orthographic projections are often used by draftsmen. See perspective projection.

parametric bicubic surface. A surface defined by three equations. The x equation is:

The equations for y and z are similar.

The points on a bicubic patch are defined by varying the parameters u and v from 0 to 1. If one parameter is held constant and the other is varied from 0 to 1, the result is a cubic curve. If w(u,v)=1 for all u,v, the bicubic surface is called "ordinary," but if w(u,v) varies as a function of u,v, then the surface is called "rational." See also homogeneous coordinates.

parametric cubic curve. A curve defined by the equation:

where x, y, z, and w are cubic polynomials. The parameter t typically varies between 0 and 1. Such a curve is considered rational only if a(w), b(w), or c(w) is not equal to 0; otherwise, it is simply an ordinary parametric curve.

patch. A parametric bicubic surface.

pattern. A 16x16, 32x32, or 64x64 array of bits defining the texturing of polygons on the system display.

perspective projection. Perspective projection is a technique used to achieve realism when drawing primitives. In a perspective projection, the lines of projection meet at the viewpoint; thus the size of a primitive varies inversely with its distance from the source projection. The farther a primitive or part of a primitive is from the viewer, the smaller it will be drawn. This effect, known as perspective foreshortening, is similar to the effect achieved by photography and by the human visual system. See orthographic projection.

picking. A method for finding out what primitives are being drawn near the cursor on the display screen. See picking region, selecting, selecting region, name stack.

picking region. A rectangular volume around the cursor that is sensitive to picking events. If a drawing primitive draws within this volume, a pick event is reported. The width and height of the region can be set by the user. If the z-buffer is enabled, the depth of the region is the entire z-buffer. See hit, picking, selecting region.

piecewise linear curve. A list of coordinate pairs in the parameter space for the non-uniform rational B-spline (NURBS) surface. These points are connected with straight lines to form a path.

pipeline options. Variables that control the flow of processing in the graphics pipeline. For instance, lighting is a pipeline option: if lighting is turned on, the color of a primitive is obtained by evaluating the lighting equations, and if lighting is turned off, the last color specified is used. Other pipeline options are the backfacing flag, the shademodel flag, the depth-cueing flag, the picking flag, the color mode (color index or RGB) flag, the z-buffer flag (enables or disables drawing to the z-buffer), and so on. See also attributes.

pixel. A rectangular picture element. A display screen is composed of an array of pixels. In a black-and-white system, pixels are turned on and off to form images. In a color system, each pixel has three components: red, green, and blue. The intensity of each component can be controlled.

pixmap. A rectangular array of pixels. The rectangle may be of any size. The format of a pixel is arbitrary and may be an RGB triplet or a color index.

polar coordinates. A coordinate system in which positions are measured as a distance from the origin and an angle from some reference direction (usually, counterclockwise from the x-axis).

polled I/O devices. Devices (keyboard, mouse, button, dials) whose current values are read by the user process.

pre-multiplication. Matrix multiplication on the left. If a matrix M is pre-multiplied by a matrix T, the result is TM.

precision. The number of straight line segments used to approximate one segment of a spline.

primitive. A drawing command, such as arc, line, circle, polygon, or charstr. Such commands are called primitives because they are not made up of smaller parts, and because they are they basic pieces out of which more complex scenes can be composed. Also used to describe the figures created by drawing commands.

primitive font. A font in which characters are defined as primitives. Like all other primitives, primitive font characters can be scaled and rotated. See raster font.

pruning. Eliminating the drawing of parts of the display list because a bounding box test shows that they are not visible.

queued I/O devices. Devices (keyboard, mouse, button, dials) whose changes are recorded in the event queue.

raster font. A font in which the characters are defined directly by the raster bit map. See font, primitive font.

raster subsystem. That part of the subsystem concerned with an image after it has been transformed and scaled to screen coordinates. It includes scan conversion and display.

refresh rate. The rate at which the monitor is refreshed. A 60 Hz monitor is redrawn 60 times per second.

relative drawing commands. Commands that draw relative to the current graphics position as opposed to being drawn at absolute locations.

repeat factor. The magnification with which the linestyle pattern is used.

RGB mode. A configuration of the hardware which allows values stored in the frame buffer to be interpreted as packed RGB values. The values found in the frame buffer are passed directly to the red, green, and blue guns of the display monitor. The values are not passed through the color map first. (However, each color is sent individually through the gamma ramp to make a final correction to its intensity.) See color map mode.

RGB value. The set of red, green, and blue intensities that compose a color is that color's RGB value.

RGBA value. The set of red, green, blue, and alpha intensities that compose a color is that color's RGBA value. Alpha values are available only on machines having alpha bitplanes.

right-hand rule. If the right hand is wrapped around the axis of rotation, the fingers curl in the same direction as positive rotation, and the thumb points in the same direction as the axis of rotation. A right-handed rotation is counter-clockwise.

rotation. The transformation of a primitive by rotating it about an axis. See transformation.

scaling. Uniform stretching of a primitive along an axis.

screen coordinates, screen space. The coordinate system that defines the display screen. Distances are measured in units of pixels, and the origin is in the lower left-hand corner. On most systems the screen size is 1024 pixels high by 1280 pixels wide. The viewport defines the mapping from normalized device coordinates to screen coordinates. See eye coordinates, modeling coordinates, world coordinates, transformation.

screenmask. A rectangular area of the screen to which all drawing operations are clipped. It is normally set equal to the viewport and to the window. A screenmask is useful for character clipping.

selecting. A method for finding what primitives are being drawn in a given volume in 3-D space. See picking, picking region, name stack, selecting region.

selecting region. A rhomboid-shaped volume in world coordinates that is sensitive to selecting events. If a drawing primitive draws within this region, a select event is reported. See hit, picking region, selecting, transformation.

single buffer mode. A mode in which the frame buffer bitplanes are organized into a single large frame buffer. This frame buffer is the one currently displayed and is also the one in which all drawing occurs. See double buffer mode.

swap interval. The amount of elapsed time between frame buffer swaps. The system waits at least the amount of time specified by the swapinterval subroutine before honoring a request to exchange the front and back buffers. The swap interval is measured in units of vertical retraces, which occur every 30th of a second on most systems. The swap interval is useful in achieving smooth-flowing animation.

tag. A marker in the display list used as the location for display list editing.

textport. A region on the display screen used to present textual output from graphical or non-graphical programs.

texture. A pattern used to fill rectangles, convex polygons, arcs, and circles.

transformation. A four-by-four matrix that helps determine the location where 3D drawing will occur, the position of the viewpoint (the viewer's eye), and the amount of the scene encompassed and visible. Transformations occur at four points within the graphics pipeline:

translation. The moving of a display image in a straight line from one location to another. See transformation.

trimming loops. A set of oriented closed curves used to set the boundaries of a NURBS surface. See NURBS.

twist. A rotation around the line of sight.

unit cube. A volume defined by the following intersecting planes: x = -1, x = 1, y = -1, y = 1, z = -1, z = 1. See normalized device coordinates.

valuator. An input/output device that returns a value in a range. For example, a mouse is logically two valuators: the x position and the y position.

vector product. Another term for the vector cross product. If a=(a1, a2, a3) and b=(b1, b2, b3) are two 3D vectors, the vector product a times b = (a2b3-b2a3, a3b1-b3a1, a1b2-b1a2).

vertical retrace. The rate at which the monitor is refreshed. A 60 Hz monitor is redrawn 60 times per second. Same as refresh rate.

vertical retrace period. The amount of elapsed time between retraces of the screen. All video monitors use an electron beam to sweep the phosphors at the face of the monitor. Because the phosphors glow for only a brief period of time, the entire screen must be reswept periodically by the electron beam. On most monitors, this is done 30 times per second (30 Hz). Thus, the vertical retrace period is 1/30 second.

viewing matrix. A matrix used to describe the location of the viewer (the virtual eye looking upon a scene) in relation to the world. See transformation, world coordinates.

viewport. The mapping from normalized device coordinates to device coordinates. The viewport maps the unit cube x/w = +-1, y/w = +-1, z/w = +-1 to the screen space, as measured in pixels. The viewport is the last transformation in the graphics pipeline. The viewport can be smaller or larger than the window and smaller or larger than the screenmask, although in most applications, it is the same size.

window. An AIXwindow. A rectangular area of the screen that can be moved about or placed on top of or pulled under other windows, or iconized by the user. All drawing inside the window is done by the GL process that created that window, and is totally under the control of that process. The drawing of the window borders, however, together with the window placement/iconization, is under the control of the window manager, for example, the AIXwindows window manager.

For most simple GL programs, the viewport and screenmask are set to the same size as the window. Do not confuse an AIXwindow with the GL window subroutine, which defines a frustum in world space.

wire frame. A graphics surface-drawing technique in which the edges and contours of a primitive are represented by simple lines.

world coordinates, world space. The user-defined coordinate system in which an image is described. Modeling commands are used to position primitives in world space. Viewing and projection transformations define the mapping of the world space to screen space. See modeling coordinates, screen space, transformations.

writemask. A set of 8 or 12 bits (depending on the frame buffer configuration), one bit for each bitplane of the frame buffer. During any drawing operation, only those planes enabled by a 1 (one) in the bit mask can be altered. Planes set to 0 (zero) are marked read only.

z-buffer, z-buffering. Applies both to the device and the techniques commonly used as an aid in removing hidden lines and hidden surfaces. If z-buffering is enabled, each pixel will store a depth value as well as a color value. In simple terms, the depth can be thought of as the distance from the viewer's eye to the pixel. Whenever a drawing routine tries to update a pixel, it will first check the current pixel's "depth" or "z-value" and will only update that pixel with new values if the new pixel is closer than the current pixel. The region of memory that stores the z-values is also referred to as the z-buffer.

zoom factor. A multiplier to determine the amount of enlargement of a specified screen rectangle. The x zoom factor determines the enlargement in the x direction; the y zoom factor, in the y direction.


[ Previous | Contents | Glossary | Home | Search ]