A small vocabulary for a big machine#
Definitions describe roles and contracts. Follow the relevant chapter to see the native data or algorithm.
Vertex#
A point with attributes such as position, normal, and UV coordinates. Three vertices define a triangle; shared indices can reuse compatible vertex data.
Shader#
A GPU program with a defined stage and input/output contract. A vertex shader transforms geometry; a pixel shader computes covered-sample values; compute handles a grid of general parallel work.
Matrix#
A compact table of numbers representing a linear or homogeneous transform. This handbook uses row vectors, row-major storage, and world × view × projection. Storage order alone does not define multiplication order.
Handle#
A stable indirect identity, usually an index and generation, validated before accessing a record. It differs from a borrowed pointer or a native graphics resource.
Descriptor#
A view/binding description telling the GPU how to use a resource. It does not own or copy the resource bytes. A descriptor referenced by in-flight work needs safe retention.
Fence#
A completion mechanism. In DX12 a queue can signal a monotonically increasing value; the CPU checks or waits for it. Vulkan also has submission fences and timeline semaphores with distinct semantics.
Mipmap#
A prefiltered lower-resolution level of a texture. Mips reduce unstable distant detail and sampling cost. Data textures may need specialized filtering; generating every channel identically is not always correct.
Frustum#
The camera’s viewing volume, bounded by projection and clip planes. Visibility tests use conservative object bounds so partly visible geometry is retained.
Render graph#
A declaration of passes, logical resources, and read/write dependencies. A compiler orders work, validates producers, and derives resource lifetimes and barriers.
Quaternion#
A four-component rotation representation used for stable 3D interpolation. q and -q describe the same orientation; normalized blending must handle their hemisphere relationship.
sRGB#
An encoded color convention commonly used for authored display-color images. Decode to linear for lighting and encode output for display. Normal maps and scalar data should not receive color decoding.
Root signature#
The DX12 shader-binding contract: root parameters, descriptor ranges, and optional static samplers. It is related to a Vulkan pipeline layout but not binary-equivalent to it.
Upload heap#
CPU-writable GPU-accessible staging/dynamic storage in DX12. Mapping gives access to bytes, not proof that earlier GPU readers have finished.
Resource barrier#
A native expression of usage/access ordering. Resource states, Vulkan stage/access masks, image layouts, and aliasing rules must be handled according to each API.
Inverse bind matrix#
A joint transform that maps bind-pose model coordinates into that joint’s bind-local coordinates. With row vectors, inverseBind × animatedGlobal produces the skin matrix.
HDR#
High dynamic range in a color representation. A floating-point intermediate can store bright linear values; native HDR display output additionally needs presentation/color-space support.
LOD#
Level of detail. Select a representation appropriate to projected size/error and budget, with hysteresis or transitions to avoid distracting switching.
Retirement#
Delayed reclamation after all CPU users and relevant GPU or audio completion facts permit release. Finishing a CPU frame is not sufficient to reclaim every resource.
Draw call#
A recorded instruction that consumes bound geometry and pipeline state. The CPU records/submits it; GPU execution occurs according to queue scheduling.
Pipeline state#
A compatible collection of shaders and graphics configuration, including input layout, raster/depth/blend state, and attachment formats. Material values do not usually require a new state object.
UV#
A two-component texture coordinate attached to a surface. Interpolation and the sampler determine which texels contribute to a covered fragment.