This is a glossary of terms relating computer graphics.
For more general computer hardware terms, see glossary of computer hardware terms.
0–9
7e3 formatA packed
pixel format supported by some
graphics processing units (GPUs) where a single 32-bit word encodes three 10-bit floating point color channels, each with seven bits of mantissa and three bits of exponent.
2D image2D texture mapA texture map with
two dimensions, typically indexed by UV coordinates.
2D vectora
two-dimensional vector, a common
data type in rasterization
algorithms,
2D computer graphics,
graphical user interface libraries.
3D graphics pipelineA
graphics pipeline taking
3D models and producing a 2D bitmap image result.
3D sceneA collection of
3D models and lightsources in world space, into which a
camera may be placed, describing a scene for
3D rendering.
3D paint toolA 3D graphics application for
digital painting of multiple texture map image channels directly onto a rotated 3D model, such as zbrush or mudbox, also sometimes able to modify vertex attributes
3D unit vectorAn unit vector in 3D space.
4D vectora common datatype in graphics code, holding
homogeneous coordinates or RGBA data, or simply a 3D vector with unused W to benefit from alignment, naturally handled by machines with 4-element SIMD registers.
4×4 matrixA matrix commonly used as a
transformation of
homogeneous coordinates in 3D graphics pipelines.
A
AABBAxis aligned bounding box (sometimes called "axis oriented"), a bounding box stored in world coordinates; one of the simplest
bounding volumes.
Additive blendingA compositing operation where
d s t = d s t + s r c , without the use of an
alpha channel, used for various effects. Also known as
linear dodge in some applications.
Alpha channelAn additional image channel (e.g. extending an RGB image) or standalone channel controlling Alpha blending.
Ambient lightAn approximation to the light entering a region from a wide range of directions, used to avoid needing an exact solution to the
rendering equation.
Analytic modelA
mathematical model for a phenomenon to be simulated, e.g. some approximation to surface shading. Contrasts with Empirical models based purely on recorded data.
anti aliasingmethods for filtering and sampling to avoid visual artefacts associated with the uniform pixel grid in
3D rendering.
AOAmbient occlusion, an approximation to
global illumination.
Array textureA form of texture map containing an array of 2D texture slices selectable by a 3rd 'W' texture coordinate; used to reduce state changes in 3D
rendering.
AZDOApproaching zero driver overhead, a set of techniques aimed at reducing the CPU overhead in preparing and submitting
rendering commands in the
OpenGL pipeline. A compromise between the traditional GL API and other high performance Low level
rendering APIs.
B
BakingPerforming an expensive calculation offline, and caching the results in a Texture map or Vertex attributes. Typically used for generating
lightmaps,
normal maps, or low level of detail models.
BoneCoordinate systems used to control surface deformation (via Weight maps) during Skeletal animation. Typically stored in a
hierarchy, controlled by keyframes, and other procedural constraints.
Billboarda texture map rendered with one or two of its axes parallel to the plane of the screen as a 3D sprite, typically used for vegetation
Bit depthThe number of bits per pixel,sample, or
texel in a bitmap image (holding one or mode image channels, typical values being 4, 8, 16, 24, 32
Bit planeA format for bitmap images storing 1 bit per pixel in a contiguous 2D array; Several such
parallel arrays combine to produce the a higher bit depth image. Opposite of packed pixel format.
Blend operationA render state controlling alpha blending, describing a formula for combining source and destination
pixels.
Bounding boxOne of the simplest type of
bounding volume, consisting of axis aligned or object aligned extents.
BRDFBidirectional reflectance distribution functions (BRDFs), empirical models defining 4D functions for surface shading indexed by a view vector and light vector relative to a surface.
BVHBounding volume hierarchyC
CameraA virtual camera from which rendering is performed, also sometimes referred to as 'eye'.
Camera spaceA space with the camera at the origin, aligned with the viewer's direction, after the application of the world transformation and view transformation.
Command bufferA region of memory holding a set of instructions for a
graphics processing unit for rendering a scene or portion of a scene. These may be generated manually in bare metal programming, or managed by low level rendering APIs, or handled internally by high level rendering APIs.
Command lista group of rendering commands ready for submission to a graphics processing unit, see also Command buffer.
Compute APIan API for efficiently processing large amounts of data.
Compute shadera
compute kernel managed by a rendering API, with easy access to rendering resources.
Connectivity informationIndices defining [rendering
primitive]s between vertices, possibly held in index buffers. describes
geometry as a
graph or
hypergraph.
Color channelsThe set of channels in a bitmap image representing the visible color components, i.e. distinct from the alpha channel or other information.
Color resolutionCLUTA table of RGB color values to be indexed by a lower bit depth image (typically 4-8bits), a form of vector quantisation.
Clip planeA plane used to
clip rendering primitives in a graphics pipeline. These may define the View frustum or be used for other effects.
Clip windowA rectangular region in screen space, used during clipping. A clip window may be used to enclose a region around a portal in
portal rendering.
CSGConstructive solid geometry, a method for generating complex solid models from
boolean operations combining simpler modelling primitives.
D
Detail texturetexture maps repeated at high frequency combined with a
main texture on a surface to prevent a blurred appearance close to the camera.
Deformation latticeA means of controlling
free-form deformation via a regular 3D grid of
control points moved to arbitrary positions, with polynomial
interpolation of the space between them.
Degenerate trianglesZero area triangle primitives placed in a
triangle strip between actual primitives, to allow many parts of a
triangle mesh to be rendered in a single drawcall. These are trivially rejected by the triangle setup unit.
Delaunay triangulationA method for generating an efficient triangulating between a set of vertices in a plane.
Depth buffera bitmap image holding depth values (either a Z buffer or a W buffer), used for visible surface determination, during rasterization of 3D scenes
Depth mapA bitmap image or texture map holding depth values. Similar to a height map or displacement map, but usually associated with a projection.
Depth valuea value in a
depth map representing a distance perpendicular to the space of an image.
Displacement mappinga method for adding detail to surfaces by subdivision and displacement of the resulting vertices form a height map.
DrawcallA single rendering command submitted to a rendering API, referring to a single set of render states.
E
Edge vectora vector between 2 position vertices in a
polygon or
polygon mesh, along an
edgeExtentsThe minimum and maximum values of an object or primitive along a coordinate axis or set of axes.
F
Forward renderingA term for traditional 3D rendering pipelines which sort lightsources applicable to 3D models in world space prior to rasterization. Contrasts with
Deferred shading.
Forward-plus renderingan extension of forward rendering using compute
shaders to place lightsources into screen space tiles, to accelerate the use of many lightsources, bypassing some of the disadvantages of deferred shading.
Frustum cullingA stage in a rendering pipeline, filtering out 3D models whose bounding volumes fail an intersection test with the
view frustum, allowing trivial rejection.
Fixed-function pipelineA hardware rendering pipeline without shaders, composed entirely of fixed function units. A limited number of functions may be controlled by render states.
Fixed function unitA piece of hardware in a graphics processing unit implementing a specific function (such as triangle setup or texture sampling), without programable control by shaders.
FXAAan approximate antialiasing method performed in a post processing step which smooths the image in screen space, guided by
edge detection (contrasting with the usual
supersampling approaches that require larger frame-buffers).
G
Geometrytypically used to refer to vertex & rendering primitive connectivity information (distinct from materials and textures).
G-bufferA screen space representation of geometry and material information, generated by an intermediate rendering pass in deferred shading rendering pipelines.
Graphical shadera shader associated with the rendering pipeline; not a compute shader.
Global illuminationGrid cell indexInteger coordinates in a multidimensional array.
H
HDRHigh dynamic range imaging, an image format using
floating-point values. Allows additional realism with post processing.
Heightmapa 2D array or texture map holding height values; typically used for defining
landscapes, or for
displacement mappingI
Image channelA single component (referred to as a channel) of a bitmap image; one of multiple components per pixel, e.g. for RGB or YUV color space, or additional channels for alpha blending
Image formatA specific way of representing a bitmap image in memory, also refers to image file formats.
Image generationsynonymous with rendering; taking a 3D scene (or other form of encoded data) and producing a bitmap image result.
Image generatorA hardware accelerator for image generation, almost synonymous with a graphics processing unit, but historically used to refer to devices aimed at realtime rendering for
simulation (e.g. Evans & Sutherland ESIG line).
Immediate mode renderingthe submission of rendering commands and rendering primitive data without the extensive use of managed resources; rendering primitive vertex attribute data may be embedded directly into a command list, rather than referenced indirectly from resources.
ImpostorA dynamically rendered Billboard texture map used to stand in for geometry in the distance. A form of level of detail optimization.
Incremental error algorithmA set of rasterization algorithms which use simple
integer arithmetic to update an
error term that determines if another quantity is incremented, avoiding the need for expensive
division or
multiplication operations; e.g.
bresenham's line algorithm, or rasterizing heightmap landscapes.
Index bufferA rendering resource used to define rendering primitive connectivity information between vertices.
Intersection testdetermining if two pieces of geometry intersect, commonly required in
simulation, rendering pipelines, and 3D modelling applications.
K
K-DOPA type of Bounding volume used for fast intersection tests; a discrete oriented polytope (DOP). These generalise bounding boxes with extents additional discrete planes (e.g. diagonals formed by each pair of coordinate axes, etc)
L
Low level rendering APIA library providing a minimal
abstraction layer over a graphics processing unit's raw command lists, such as Vulkan, LibGCM, or
Metal (API). The user typically has more control over(and responsibility for) resource management, command buffers, synchronisation issues.
LumelsA term for Texels in the texture map representing a Lightmap.
Light vectorIn shading calculations, a 3D unit vector representing the direction of incident light onto a model's surface.
Light fielda
data structure approximating the 4D
flux of light rays through a space (or in the general case, 5D); it may be captured using multiple cameras (e.g.
light stage), or rendered from a 3D model by
ray tracing.
Line primitiveA rendering primitive or modelling primitive representing a
line segment, used for wireframes.
M
Marching cubesA method for triangulating
implicit surfaces.
Modelling primitiveBasic elements from which 3D models and 3D scenes are composed. Also known as a
Geometric primitive.
Model transformation matrixa transformation matrix producing world coordinates from a 3D model's
local coordinates.
MicrotextureAn alternative term sometimes used for Detail textures.
Multiply blendA blending operation used for lightmaps,
d s t = d s t ∗ s r c .
N
Near clippingThe clipping of 3D rendering primitives against the near clip plane. Necessary to correctly display rendering primitives that partially pass behind the camera
O
Occlusion queryA command passed to a Graphics processing unit requesting the testing of bounding volume geometry against the depth buffer to determine if any contents in the
potentially visible set; used for hardware accelerated occlusion culling.
OOBBAn Object oriented bounding box (sometimes called object aligned); a bounding box stored in some object's local
coordinate systemOutcodeA small integer holding a bit for the result of every plane test (or clip window edge test) failed in clipping. Primitives may be trivially rejected if the bitwise AND of all its vertices outcodes is non zero
P
Packed pixel formatan image format where the image channels are interleaved contiguously in memory, possibly containing multiple channels within single machine words, equivalent to an array of structures for bitmap data. Contrasts with planar image formats.
Parameter gradientThe
derivative of a vertex attribute with respect to screen space coordinates during rasterization, used for
interpolation across a rendering primitive surface.
Physically based renderingrendering algorithms based on physics simulation of light, including
conservation of energy, empirical models of surfaces.
Planar image formatan image format where the image channels (or even bits) for a single pixel is separated into several
parallel arrays, equivalent to a structure of arrays for bitmap data.
Point clouda surface defined by a collection of vertices without connectivity information.
Point spriteA rendering primitive in 3D graphics pipelines, allowing one vertex plus radius to define a
billboard; corner vertices are automatically generated. Typically used for particle systems
Polygon meshA 3D model consisting of vertices connected by polygon primitives.
Polygon primitiveA rendering or modelling primitive defining a flat surface connecting 3 or more vertices.
PortalA means of occlusion culling, defining a visible window between adjacent bounding volumes, used in
portal rendering.
Post processingEffects applied to a bitmap image in screen space after 3D rendering pipeline, for example
tone mapping, some approximations to motion blur,and blooms.
Predicated renderingA feature facilitating occlusion culling within a graphics pipeline, performed by a command list asynchronously form the CPU, where a group of rendering commands are flagged to be conditional on the result of an earlier occlusion query.
Premultiplied alphaA variation of a bitmap image or alpha blending calculation in which the RGB color values are assumed to be already multiplied by an alpha channel, to reduce computations during Alpha blending; uses the blend operation:
d s t = d s t ∗ ( 1 − a l p h a ) + s r c ; capable of mixing alpha blending with additive blending effects
PrimitiveA basic unit of geometry for rendering or modelling
Q
Quaterniona means of representing rotations in a 4D vector, useful for
skeletal animation, with advantages for interpolation compared to
euler angles (i.e. not suffering from
gimbal lock).
R
Ray tracingtracing paths of light rays through a 3D scene, may be used for 3D rendering (more commonly for offline rendering), or other tests
Recursive subdivisionThe process of subdividing an object (either geometric object, or a data structure) recursively until some criteria is met.
RGB888an RGB color value] encoded as 8 bits per channel
RGBAAn RGB color value together with an alpha channel, typically held in bitmap images or intermediates in shading calculations.
RGBA888an RGBA color value encoded as 8 bits per channel
RGB imageA bitmap image holding RGB color values in 3 image channels
RGB color valuea 3D vector describing a color using the
RGB color model; may use fixed point or
floating-point representations.
Rendering APIA software library for submitting rendering commands, and managing render states and rendering resources;examples include
OpenGL,
Direct3D, Vulkan. Provides an abstraction layer for a graphics processing unit.
Render mappingThe baking of a rendering of a 3D model surface into a texture map to capture surface properties. Also known as 'render surface map'.
Render passA stage in a rendering pipeline generating some (possibly incomplete) representation of the scene.
Render statesInformation controlling a graphics pipeline, composed of modes and parameters, including resource identifiers, and shader bindings.
Render targetA graphics resource into which rendering primitives are rasterized by a graphics pipeline. Render targets may be frame buffers or texture maps.
Render to textureThe process of rasterizing into a texture map (or texture buffer) for further use as a resource in subsequent render passes. Used for environment mapping, impostor rendering,
shadow mapping and post processing filters. Requires the ability to use a texture map as a render target
Rendering commandAn instruction for rasterizing geometry in a 3D graphics pipeline, typically held in a command buffer, or submitted programatically through a rendering API
Rendering primitivegeometry that can be drawn by a rasterizer or Graphics processing unit, connecting vertices,e.g. points, lines, triangles, quadrilaterals
Rendering resourcesData managed by a graphics API, typically held in device memory, including vertex buffers, index buffers, texture maps and
framebuffersRepeating textureA texture map applied with wrap-round UV coordinates extending between the 0-1 range (representing one unit of the image), exhibiting periodicity. Contrasts with clamped, mirrored modes or unique mappings.
ResourceData (often held in a buffer managed by a rendering API) read by a graphics pipeline, e.g. texture maps, vertex buffers, shaders, index buffers, or other pieces of 3D model data.
Rounding radiusa value used in smoothing the corners of a geometric figure such as a 2D polygon or 3D polygon mesh
S
Screen spaceThe coordinate space of the resulting 2D image during 3D rendering. The result of
3D projection on geometry in camera space.
Screen space directional occlusionAn enhancement of
Screen space ambient occlusion (SSAO) taking direction into account to sample the ambient light, to better approximate global illumination.
Shadera subroutine written in a
shading language describing: vertex transformations, skinning and possibly vertex lighting (in vertex shaders); shading calculations (in pixel shaders); control over
tessellation(tessellation shaders); or general purpose computation.
Shading calculationsurface lighting and texturing blending operations, e.g. including
specularity,
bump mapping etc.
Shadow mapA texture buffer holding depth values rendered in a separate render pass from the perspective of a lightsource, used in
Shadow mapping; it is typically rendered onto other geometry in the main rendering pass.
Shadow bufferA synonym for shadow map.
Signed triangle areaFound using half the Z component of
cross product of a pair of screen-space triangle edge vectors, useful for backface culling and computing parameter gradients in triangle rasterization.
Sliverous triangleSliver triangleA triangle with one or two extremely acute angles, hence a long/thin shape, which has undesirable properties during some interpolation or rasterization processes.
State changesthe passing of changes in render states in a graphics pipeline, incurring a performance overhead. This overhead is typically minimised by scene sorting.
Spatial hashingA form of hashing to accelerate spatial testing e.g. for AI,
collision detection, typically using a grid cell index as a key.
Specular exponentControls the glossiness in the phong shading model.
SplineA
curve defined by
polynomial interpolation through control points.
Surface normal vectorIn shading calculations, the normal to a 3D model surface, typically compared with the light and view vectors to compute the resulting visible colour. Also used for displacement mapping.
Swizzled textureA texture map stored out of the natural pixel order; see Swizzling (computer graphics). For example, it may be stored in morton order, giving improved
cache coherency for 2D
memory access patterns.
T
Terrain renderingRendering of landscapes, typically using
heightmaps or
voxels.
Texture cacheA specialised read-only cache in a graphics processing unit for buffering texture map reads, accelerating texture sampling operations.
Texture samplingThe process of texture lookup with
texture filtering. Performed by a texture sampling unit in a graphics processing unit
Texture sampling unitA fixed function unit performing texture sampling; also known as a
texture mapping unit.
Texture bufferA region of memory (or resource) used as both a render target and a texture map.
Texture mapA bitmap image/rendering resource used in
texture mapping, applied to 3D models and indexed by
UV mapping for 3D rendering.
Texture spaceThe coordinate space of a texture map, usually corresponding to UV coordinates in a 3D model. Used for some rendering algorithms such as texture space diffusion
Transform feedbackA feature of a rendering pipeline where transformed vertices may be written back to a buffer for later use (e.g. for re-use in additional render passes or subsequent rendering commands), e.g. caching the result of
skeletal animation for use in shadow rendering.
Triangulationthe process of turning arbitrary geometric models into triangle primitives, suitable for algorithms requiring
triangle meshesTriangle primitiveThe most common rendering primitive defining triangle meshes, rendered by graphics processing units
Triangle setupthe process of ordering triangle primitive vertices, calculating signed triangle area and parameter gradients between vertex attributes as a prerequisite for rasterization.
Triangle setup unitA fixed function unit in a GPU performing triangle setup (and may perform backface culling), prior to actual rasterization.
TristripA common rendering primitive defining a sequence of adjacent triangle primitives, where each triangle re-uses 2 vertices from the previous one.
Trivial acceptThe process of accepting an entire rendering primitive, 3D model, or bounding volume contents without further tests for clipping or occlusion culling. The opposite of trivial rejection.
Trivial rejectionRejecting a rendering primitive or 3D model based on a cheap calculation performed early in a graphics pipeline, (e.g. using outcodes in clipping). The opposite of trivial accept.
U
UV unwrappingThe process of flattening a 3D model's surface into a flat 2D plane in a contiguous, spatially coherent manner for texture mapping.
Unified memoryA
memory architecture where the CPU and GPU share the same
address space, and often the same physical memory. More common in SoCs and
video game consoles. Supported on some discrete GPUs with the use of an MMU.
UV coordinatesCoordinates in texture space, assigned as vertex attributes and/or calculated in vertex shaders, used for texture lookup, defining the mapping from texture space to a 3D model surface or any rendering primitive.
V
Vector maths libraryA library defining mathematical operations on
vector spaces used in 3D graphics, concentrating on 3D and 4D vectors, and 4x4 matrices, often with optimised SIMD implementations.
Vertex bufferA rendering resource managed by a rendering API holding vertex data. May be connected by primitive indices to assemble rendering primitives such as triangle strips. Also known as a Vertex buffer object in OpenGL.
Vertex cacheA specialised read-only cache in a graphics processing unit for buffering indexed vertex buffer reads.
Volume textureA type of texture map with 3 dimensions.
VoxelsAn extension of pixels into 3 dimensions.
View transformationA matrix transforming world space coordinates into camera space.
View vectorIn shading calculations, a 3D unit vector between the camera and the point of interest on a surface.
View frustuma truncated pyramid enclosing the subset of 3D space that projects onto a 'viewport' (a rectangular region in screen space, usually the entire screen)
W
W bufferingA depth buffer storing inverse depth values, which has some advantages for interpolation and precision scaling.
Weight mapA set of Vertex attributes controlling deformation of a 3D model during skeletal animation.Per-vertex weights are assigned to control the influence of multiple bones (achieved by interpolating the transformations from each).
WindowA rectangular region of a screen or bitmap image.
Wireframemay refer to Wireframe models or wireframe rendering.
Wireframe renderinga rendering of a 3D model displaying only edge connectivity; used in 3D modelling applications for greater interactive speed, and clarity for mesh editing.
World spaceThe global coordinate system in a 3D scene, reached by applying a model transformation matrix from the objects'
local coordinatesZ
Z buffera 2D array holding depth values in screen space; a component of a
framebuffer; used for hidden surface determination.
Z test cullinga form of occlusion culling by testing bounding volumes against a Z buffer; may be performed by a graphics processing unit using occlusion querys.
Z orderA morton order space filling curve, useful for increasing cache coherency of spatial traversals.