LerpworksAcademy

Reference

Glossary

Graphics

219 terms
Additive blendingThe new color is added to the one already drawn, the way light behaves. Black is invisible, nothing can be darkened, and layer order does not matter, so fire and sparks need no sorting.
Address mode: Wrap, Clamp, MirrorWhat happens when a UV goes outside 0..1: repeat the texture (Wrap), stretch the edge pixel (Clamp) or flip it (Mirror).
Air massHow much air lies on a ray’s path compared with the path from the zenith: 1 overhead, about 38 at the horizon. The larger it is, the more the light is dimmed and the redder the sun.
AliasingAn error from too few samples: a pixel measures the world at one point, and detail finer than the gap between samples disappears or passes itself off as coarser detail. It causes stair-steps, moiré, sparkles and flicker in motion.

It comes in geometric (edges), shader (highlight sparkles, the foliage threshold) and temporal (flicker in motion) kinds. A pixel is one sample.

Alpha blending, overLaying a new color over what is already there by its opacity: new × alpha + old × (1 − alpha). The result depends on the order of the layers.
Alpha coverage, preserve coverageThe share of pixels that pass the alpha test. In the shrunken copies of a texture alpha is averaged, coverage drops, and foliage in the distance thins out. Preserving coverage multiplies the alpha of each copy so that the share stays the same.

Unity: Mip Maps Preserve Coverage. Unreal: Do Scale Mips for Alpha Coverage. Godot 4.8: Mipmaps → Preserve Alpha Test Coverage.

Alpha test, alpha clip, cutoutCutting pixels out of a surface by a mask: each pixel is either drawn fully or not at all, with no transparency in between. In Unreal this is the Masked blend mode; it costs more than an opaque surface.
Alpha to coverageWith MSAA anti-aliasing, alpha decides how many of a pixel’s sample points to cover: at α = 0.5, half of them. The edge of a mask gets softer without sorting. It works only with MSAA.
Alpha, opacityThe fourth number of a pixel, next to R, G and B: what share the layer covers. 1 covers everything, 0 covers nothing. It is opacity, not transparency.

In Unreal the material input is called Opacity, and for Masked it is Opacity Mask. Alpha is taken from a texture channel, from a number, from vertex color or from a particle. What to do with it, replace the pixel, discard it or blend with it, is decided by the blend mode.

Ambient occlusionThe share of the sky a point can see: 1 is an open spot, 0 is a deep crevice. It is baked into a texture. In Unreal the AO input dims only indirect light and leaves the sun alone.
Anti-aliasing, AAWays to fight aliasing. All of them share one idea: take more samples per pixel, in one frame or across several, and blend them.
Auto exposure, eye adaptationExposure that the engine sets by itself from the brightness of the frame, like the eye. It builds a histogram, throws out the darkest and brightest pixels and steers a multiplier smoothly toward the target. It is better to lock it while you set up lighting.
Base color / AlbedoThe color of a surface with no light or shadow on it: the share of each channel it returns as diffuse. For metals, BaseColor is the color of the reflection, F0.
Bit depthHow many bits are given to a channel. 8 bits give 256 steps, which is why editor palettes write color as numbers from 0 to 255.
Bitangent (binormal)An arrow on the surface along the growth of V. It is not stored. It is computed from the normal and the tangent, with a sign: B = sign × (N × T). The sign is needed for mirrored UVs.
Blend modeHow the new color of a pixel lands on what is already drawn: it replaces it (Opaque), replaces it or is discarded by a threshold (Masked), or blends with it (Translucent, Additive, Modulate).
Bloom, glowA halo around bright places, like the scattering of light in a lens and in the eye: the frame is blurred at several scales and mixed into the original. It is done in HDR before tone mapping, so that the brighter the source, the wider the halo.
Bounce light, light bounceLight that fell on a surface and bounced onward. Each bounce multiplies it by the albedo, so at an albedo of 0.5, three bounces deliver 87.5% of all indirect light.

Light interiors and snow need more bounces: at an albedo of 0.8, three bounces give less than half. Why two or three bounces are enough.

Cascaded shadow maps, CSMShadows from the sun with several maps: the space in front of the camera is cut by distance into 2–4 slices, and each slice has its own map of the same size. Texels are small near the camera and large far away.

The main quality knob is the shadow distance, which all the cascades share. A visible line appears at the cascade boundaries, and blending hides it. Cascades: shadows from the sun.

Cavity mapA map of tiny crevices and pores. It darkens BaseColor and Specular, because neither the light of the sky nor its reflection gets into a tight crevice.
Channel (R, G, B, A)One of the components of a color: R, G, B or A. Each channel is a separate black-and-white table of numbers from 0 to 1.
Clip space / normalized device coordinatesThe coordinates after projection. After the division by depth, everything visible lies between −1 and 1 in x and y, and the rest is clipped.
ClippingA value went above 1 or below 0 and was cut off: different values became equal, and detail is gone.
Cluster, meshletA small piece of a model, about 128 neighboring triangles. The engine tests a cluster for visibility and picks its level of detail as a whole. This is how Nanite and other virtualized geometry systems work.
Color dilation, edge paddingThe transparent pixels of a texture are filled with the color of the nearest edges, and alpha is left alone. Then filtering and mipmaps do not mix black or white into the edge, and there is no dark fringe.
Color gradingThe last step of the frame that shifts its colors as a whole: warmer, colder, more contrast, a tint in the shadows. In games it is a post-process effect, often stored as a lookup table, and it can change with the time of day or the place.
Contact shadows, screen-space shadowsShort shadows made from the depth buffer of the frame: from a pixel, the engine steps toward the light and checks whether anything has got in the way. They give small things such as buttons, pebbles and joints shadows that are smaller than a texel of the map.

They see only what is on the screen and do not know how thick objects are, so they work alongside the shadow map. Baked and contact shadows.

ContrastThe difference between light and dark. Raising contrast means spreading the values further apart, without cutting off the ends if possible.
CPU-boundThe CPU sets the frame: logic, physics or the preparation of draw calls takes longer than the graphics card’s work, so the graphics card sits idle. Lowering the resolution does not help then.
Cubemap, cube mapSix square pictures that record the view from one point: forward, back, left, right, up and down. It is looked up by direction, and the largest number of the arrow picks the face.

A cubemap knows only directions, not distances, so it is accurate for faraway things such as the sky and mountains. In a room it is corrected with a box. Cubemap.

Cull distanceThe distance beyond which an object is not drawn because it is smaller than a pixel. It is shorter for small things and longer for big ones; the edge is dissolved with dithering.
DecalAn image projected onto a surface that already exists, such as a crack, a puddle or a road marking. It has no geometry of its own and changes the color, normal and roughness of the surface under it.
Deferred rendering, deferred shadingOpaque objects first write the properties of their surface into the G-buffer. Then a separate pass computes light for the pixels of the screen, only where a lamp reaches. The cost of light does not depend on the number of objects.
Depth bias, polygon offsetA small correction to a pixel’s depth during rasterization. The geometry stays put, but the test treats it as slightly nearer or farther. It cures the flicker of decals and the stripes on shadows.
Depth buffer, Z-bufferA second picture the size of the frame. Each pixel stores how far from the camera is whatever is drawn there, and the graphics card uses it to decide what is closer.
Depth fade, soft particlesTransparency by the difference in depths: water, smoke and fog fade out smoothly where they touch a surface, instead of leaving a hard line.
Depth of field, DOFBlurring of everything nearer or farther than the focus, as in a camera. It is computed from the depth texture: the farther a pixel is from the focus, and the wider the aperture, the stronger the blur.
Depth prepass, Z-prepassAll opaque geometry is first drawn into the depth buffer only, then again with the material and the “exactly equal” test. Each visible pixel is computed once.
Depth test, ZTestCompares the depth of a new pixel with the depth stored in the buffer. The pixel passes only if it is closer (or as the comparison is set up).
Depth texture, scene depthThe depth buffer read as a texture after the opaque pass. Transparent materials and post-processing use it to learn how far away the visible surface is.
Depth write, ZWriteStoring the depth of a pixel that passed the test, so that it covers what is drawn after it. Opaque objects write depth; transparent ones do not.
DielectricAny material except a metal: stone, wood, plastic, leather, water, paint, rust. It gets its color from diffuse light, and its reflection is weak and colorless.
Diffuse reflectionLight that has gone inside a material, scattered off the pigment and come back out in every direction. It carries the color of the material and does not depend on where you look from.
Direct light, direct lightingLight that reaches a point straight from a source: the sun, a lamp, a flashlight. It makes sharp shadows: a point either sees the source or does not.
Directional lightmapA lightmap that remembers not only how much light arrived but also where it came from. This is what lets a normal map work on a baked wall. The cost is a second texture and twice the memory.
Dithering, screen-door transparencyShowing shades with dots: a light area gets few dots, a dark one many, and a fixed pattern of thresholds decides which dots appear at each shade. Placement uses the same idea to turn density into objects.
Draw callA command from the CPU to the graphics card: here is the shader, here are the parameters and textures, draw these triangles. The state changes between calls, and changing the shader usually costs more than changing parameters.
Dynamic resolutionThe engine lowers the resolution of the frame by itself when the graphics card cannot keep up with the budget, and raises it again when there is room. Upscaling hides the difference.
Early-Z, early depth testThe depth test before the pixel shader: covered pixels are rejected, and no work is spent on their material. It works less well if the shader writes depth itself or discards pixels.
Energy conservationA surface does not reflect more light than lands on it. So a rough surface has a wider but dimmer highlight, and a metal has no diffuse light.
Exponential fog, distance fogFog whose share grows with distance by an exponential curve: almost none near the camera, then more and more, never quite reaching full. Each pixel is mixed toward the fog color by that share. In Unreal it is the Exponential Height Fog actor.
ExposureHow much light the camera lets into the frame. The engine divides the light computed in HDR by a single number, so that the needed part of the brightness range fits on the screen. +1 EV is half as much light.

A clear day suits about EV 15, an evening room about EV 5. Auto exposure adjusts it to the brightness of the frame, like the eye. How much light: sun versus room. Auto exposure.

Exposure value (EV), stopA doubling of light. +1 EV means half as much light is let into the frame: a clear day suits about EV 15, an evening room about EV 5. Illuminance in lux at ISO 100: E = 2.5 × 2^EV.
Fast approximate anti-aliasing; subpixel morphological anti-aliasingAnti-aliasing of the finished frame: it finds sharp jumps in brightness and blurs along the edge. It is cheap, but it does not bring back lost detail and knows nothing about past frames, so the flicker stays.

SMAA recognizes the shape of the steps and blurs less than FXAA. FXAA and SMAA.

Field of viewField of view: how wide an angle of the world the camera shows, measured across the screen or up and down. Many games let players set the horizontal field between about 60 and 90 degrees; at 90° on a 16:9 screen, the view reaches about 29° above the horizon.
Floating-point precision / Large World CoordinatesA float holds about seven significant digits. Far from the origin of the world the step between numbers grows, and models shake. Unreal 5 stores world positions as doubles: these are Large World Coordinates.
Forward rendering, forward shadingLight is computed right away, while an object is drawn: the pixel shader loops over the lamps chosen for the whole object. It works well with transparent objects and MSAA, but many lamps on a big object are expensive.
Forward+, tiled and clustered shadingForward rendering with lamp lists: the screen is divided into tiles (clustered shading also slices them by depth), and each pixel loops only over the lamps of its tile. Many lamps without a G-buffer.
Frame budgetHow many milliseconds one frame gets: 1000 / FPS. 16.7 ms at 60 frames per second, 33.3 at 30, 8.3 at 120. Logic, physics and all the render passes share this time.

It is easier to measure in milliseconds: they add up, and frames per second do not. Milliseconds, not frames.

Fresnel effectThe more obliquely you look at a surface, the more it reflects: head-on, water reflects 2%, and near the horizon almost everything. This gives the light rim along the edges of objects.

Games compute it with Schlick’s approximation: F = F0 + (1 − F0) × (1 − cos θ)⁵. Lesson

Frustum cullingA check of whether an object’s bounds, a sphere or a box drawn around it, fall inside the truncated pyramid the camera sees. For a sphere it takes six dot products with the walls of the pyramid.

The test uses the bounds, not the model, so vertices that the wind pushes outside the bounds can vanish too early. The camera pyramid.

G-buffer, geometry bufferSeveral screen-sized images that hold, for every pixel, the properties of the visible surface: color, normal, roughness, metallic, AO. Deferred rendering computes light from them.

An image has four channels, so the fields are packed tightly. In Unreal the normal lives in GBufferA, Metallic, Specular and Roughness in GBufferB, and BaseColor and AO in GBufferC. To see the fields, use View Mode → Buffer Visualization. How the G-buffer is packed.

GhostingA translucent trail behind a moving object under temporal anti-aliasing: the history is not rejected, and past frames get blended into new ones. Most often the object has no correct motion vectors.
Global illuminationAll the lighting of a scene together, direct and indirect. In practice the term names the way an engine calculates indirect light: ambient light, sky light, baked light, probes, or a real-time calculation.

The methods by cost: constant ambient light, sky light, lightmaps, probes, and real-time GI, which is Lumen in Unreal and SDFGI and VoxelGI in Godot. Global illumination: methods by cost.

Global shader parameterA value shared by all materials at once: time, wind, wetness after rain, snow. Change it in one place and the whole world changes.

In Unreal it is a Material Parameter Collection, in Unity Shader.SetGlobal…, in Godot a global uniform. The lesson

GPU instancingDrawing many copies of one mesh with one material in a single call: each copy has only its own position and a little data of its own. This is how grass, rocks and trees are drawn.
GPU-boundThe graphics card sets the frame, and the CPU waits for it. If lowering the resolution speeds up the frame, the limit is in the pixels; if it does not, the limit is in the vertices or the shadow maps.
Graphics processing unitThe graphics card’s processor: thousands of small cores that run the same small program on many pieces of data at once. It draws the frame, and it can also compute other things, such as placing trees.
Height blendA blend of two layers that also uses each layer’s height map: the layer that is higher after adding its weight wins. Sand fills the gaps between stones first, and the edge follows the relief instead of a blurry smear.
Height fog, Exponential Height FogFog whose density falls off exponentially with height: milk in the lowlands, with clearer peaks and sky overhead. The sum of density along a ray is computed by a single formula, so it is cheap.
Hierarchical level of detail, HLODA far-away level for a whole group of objects: a block of houses is merged into one mesh with one material, and in the distance it is drawn in a single call. Up close, the real objects replace it.
Hierarchical Z, HZBA coarse copy of the depth buffer that keeps the farthest depth for each block of pixels. The graphics card uses it to reject whole blocks, and the engine to reject objects that are covered completely.
High dynamic rangeValues brighter than 1: sunlight, glow. They are computed inside the shader and compressed to the range of the screen at the last step of the frame.
High-Level Shading LanguageA shader language similar to C. Unreal turns a material graph into HLSL code, and the Custom node lets you write HLSL right in the graph.
Homogeneous coordinatesA fourth number, w, added to the coordinates: 1 for points, 0 for directions. It lets translation be written as a multiplication by a 4 × 4 matrix, while directions are not moved.
Impostor, billboardA flat picture that stands in for a 3D object far away, usually a tree or a building, turned to face the camera. It costs a few triangles instead of thousands, and at a distance nobody can tell.
Index of refraction, IORHow many times slower light travels in a substance than in a vacuum: 1.33 for water, about 1.5 for glass. F0 = ((n − 1) / (n + 1))² comes from it.
Indirect light, indirect lightingLight that reaches a point not from a source but from other surfaces and from the sky. It fills in shadows and tints them with the color of the neighbors.
Input latency, input lagThe time from pressing a button to the picture on the screen. The CPU and the graphics card work on different frames, and when the graphics card is the limit, frames also pile up in a queue, so the delay is several frames.

Low-latency modes (NVIDIA Reflex, AMD Anti-Lag) make the CPU start each frame just in time for the graphics card. Frame generation does not reduce latency. A frame in flight.

InterpolationSmooth blending of values between the vertices of a triangle. This is how every pixel gets its own UV, normal and color.
Inverse square law, inverse squared falloffThe light of a point source falls as 1 / distance²: twice as far is a quarter as bright. The same amount of light lands on an area four times larger.

Engines cut it off at an attenuation radius (Attenuation Radius in Unreal, Range in Godot) and fade the light smoothly to zero at the edge. The sun is so far away that it does not fall off within a scene. Twice the distance, a quarter of the light.

Jitter, sub-pixel jitterA shift of the camera by a fraction of a pixel in every frame, around a cycle of 8–16 positions. Thanks to it, samples from different frames land at different points of the pixel, and temporal anti-aliasing collects many samples from them.
Lambert's cosine lawThe light a surface receives is proportional to the cosine of the angle between the normal and the direction to the light. Hence brightness = max(0, dot(n, L)).
Left- and right-handed coordinatesTwo conventions for which way the third axis points. Unreal and Unity are left-handed; Blender and Godot are right-handed. When you move a model between them, one axis is flipped, or the model comes out mirrored.
Level of detail, LODSeveral versions of a model: the full one for up close and ever simpler ones for the distance. The engine switches them by the size of the object on screen, not by meters, so that each pixel gets about the same number of triangles.
Light baking, precomputed lightingComputing the lighting ahead of time, in the editor: thousands of rays and several bounces, with the result saved into lightmaps and probes. In the game, all that is left of the calculation is a texture lookup, but nothing can move.

The gain is soft shadows and bounces for almost nothing. The price is bake time, memory, a second unwrap and immobility. Baking is a snapshot of the light.

Light mobilityHow much of a lamp’s light may be baked. A static light is baked entirely, a stationary one has its bounces and the shadows from static objects baked, and a movable one has nothing baked. The more is baked, the cheaper the light and the less you can change.

With a stationary light you can change the brightness and color, but not the position: the bounces do not change with them. Three kinds of lights.

Light probeA point in the air that remembers how much light arrives at it from each side. Moving objects take their indirect light from the nearest probes.

Probes are laid out in a grid, then baked or updated on the fly. In Unity a probe stores 27 numbers, nine per color channel. Probe grids: Adaptive Probe Volumes in Unity 6, Volume probes in EEVEE, Volumetric Lightmap in Unreal, and the probes of LightmapGI in Godot.

LightmapA texture whose every texel records how much light reached that point of the surface. It holds no color: the shader multiplies BaseColor by the light from the lightmap.

Light changes smoothly, so a lightmap needs only 10–30 texels per meter, while the bricks stay crisp in their own texture. The lightmap: light kept apart from color.

Lightmap bleeding, light bleedingLight or dark stripes along the edges of lightmap pieces: blending neighboring texels picks up another piece or empty space. The fix is padding of at least two texels and extended edges.

Padding is measured in lightmap texels, so at a lower resolution the same unwrap starts to leak. Leaking across seams.

Lightmap density, lightmap resolutionHow many lightmap texels there are per meter of surface. Too few gives stair-steps, lost thin shadows and leaks under walls. Double the resolution means four times the memory.

A 64-texel lightmap on a 4 m wall gives 16 texels per meter, each texel 6 cm across. Lightmap density.

Lightmap UVs, UV2A separate unwrap of the model for the lightmap: all the pieces inside 0…1, with no tiling and no overlaps, and with padding measured in lightmap texels. The first unwrap will not do, because it has repeats and shared pieces.

In Unreal this is usually channel 1 (counting from zero), and in Unity and Godot it is UV2. The second unwrap.

Linear color, linear spaceNumbers proportional to the amount of light: twice the number means twice the light. Light is added, multiplied, blended and blurred in them; the shader converts color textures to linear when it reads them.
LOD poppingA visible change in a model’s shape at the moment its level of detail switches. Levels close together, a margin between the thresholds for switching down and up, and a smooth dithered transition soften it.
Lookup table, color LUTA table of the form “this color becomes that one,” in which any chain of color edits can be baked. It is a cube of 16³ or 32³ points, and colors between the points are blended; in Unreal, a 16³ cube lies flat as a 256 × 16 strip. It is correct only for the frame it was graded on.
LumenUnreal’s global illumination and reflections, computed every frame from a simplified copy of the scene: cards with material, distance fields or hardware rays. Everything can change, but the light lags, is noisy and leaks through thin walls.

When Lumen is on, lightmaps are hidden and static lights do not shine. The cost is about 4 ms of a frame at 60 fps. Live indirect light, Rays and Lumen.

Macro variationA large, soft pattern, often hundreds of meters across, that slightly changes the color and brightness of a tiled ground texture. It hides the repeat in the distance, so that no two hills look the same.
Marching cubesA method that turns numbers stored in a 3D grid into a surface of triangles. It looks at one cube of eight corners at a time, finds the edges where the surface passes between an inside and an outside corner, and places the crossing by interpolation.
MaskA black-and-white image where each pixel is a number from 0 to 1, “how much.” It usually serves as the fraction t for blending.
MaterialA shader plus the values of its settings: numbers, colors and textures. The code is shared, and each material has its own data. It decides how a surface looks under light.
Material instance / variantA material without its own graph: a link to a parent and overridden parameters. Everything else is inherited from the parent. Changing its parameters needs no compilation.

In Unreal it is a Material Instance, in Unity a Material Variant (since version 2022.1). Not to be confused with instancing, drawing many copies with one call. Lesson

Material parameterA number, color or texture that an instance passes into a ready-made shader. The same for all pixels, and it changes without compilation.
MetallicA switch between two recipes. At 0 the material is a dielectric: its color sits in the diffuse light, and its reflection is a colorless 4%. At 1 it is a metal: there is no diffuse light, and BaseColor becomes the color of the reflection. In-between values belong only at transitions.
MicrofacetA tiny flat facet of a surface, smaller than a pixel. The PBR model treats a surface as made of such little mirrors, and roughness is how widely their tilt varies.
Mie scatteringScattering on particles the size of the wavelength or larger: dust, pollen, smoke, droplets. It scatters all colors almost equally and mostly forward, which is why haze is whitish, clouds are white, and there is a halo around the sun.
MikkTSpace tangent basisA shared standard for computing tangents. If the baker and the engine both use it (with the same triangulation), a normal map is read exactly the way it was baked.
MipmapsPre-shrunk copies of a texture. In the distance the graphics card takes a small copy so that the picture does not shimmer.

A chain of levels, each half as large per side, down to 1 × 1; the whole chain is a third of the original’s memory. The level is chosen from the UV derivatives: log2 of the size of the pixel’s footprint. The lesson on mipmaps and filtering.

Modulate, multiply blendingThe new color multiplies the one already drawn, the way a filter works: stained glass, sunglasses, dirt. White is invisible, nothing can be lightened, and layer order does not matter.
Motion blurThe streak behind a fast object, as in a photo with a slow shutter: each pixel is blurred along its motion vector. The length is set as a fraction of a frame, like a shutter angle. It eats detail and can cause motion sickness.
Motion vectors, velocity bufferAn image in which each pixel records how many pixels, and in which direction, its point moved during the frame. Temporal anti-aliasing and upscalers use it to find the point in the history. With no arrows, you get ghosting.

Transparent things and textures scrolling along the UVs have none; vertex displacement gives arrows only if the engine also computes the previous position. Reprojection.

MultiplyWorks like a filter, a piece of colored glass: each channel passes by its own share. The neutral value is 1. With numbers from 0 to 1 it only darkens.

This is how textures are tinted and how light falls on a surface: color = BaseColor × light. A red apple under blue light is black, because (1, 0, 0) × (0, 0, 1) = (0, 0, 0).

Multisample anti-aliasingEdge smoothing: the graphics card tests a pixel’s coverage at several points, usually four, and blends the color along the edges, while the shader still runs once per pixel. Cheap in forward rendering, awkward in deferred rendering.
Nanite, virtualized geometryUnreal’s system for very detailed meshes. It splits a mesh into small clusters of triangles and draws only as many as the screen needs, so a rock or a cliff can have millions of triangles.
Near and far clip planesThe limits of what is visible by distance: anything nearer than the near plane or farther than the far plane is not drawn. The near plane sets the precision of the whole depth buffer.
NoiseA formula that turns coordinates into a random but smooth pattern: nearby points are similar, distant ones are not. It is used for masks of moss and dirt, clouds and terrain, and to bend lines that would look too straight.
NormalAn arrow of length 1 that points straight out of a surface. It shows which way the surface faces; lighting and slope rules are computed from it.
Normal mapA texture that stores a direction in each pixel instead of a color. Lighting uses it to draw small bumps that are not in the geometry.
Normal map Y flipTwo conventions for which way G points in a normal map. Unreal expects DirectX, and Blender works in OpenGL. Mix them up and a bump looks pressed in.
Object (local) spaceCoordinates measured from the model’s pivot, along the model’s own axes. This is how points are stored in the model file, and they do not change wherever the object is placed.
Occlusion cullingThrowing away objects that other objects hide completely. The test usually runs on a reduced depth buffer (Hi-Z): an object is hidden if its nearest point is farther than the farthest depth in the cells it covers.
OctaveOne layer of fractal noise. Each next octave is finer and weaker than the one before; added together, they give large shapes with smaller and smaller detail on top.
One MinusFlips a mask: white becomes black, black becomes white.
Order-independent transparency, OITWays to blend transparent layers correctly in every pixel without sorting objects: store and sort all the layers, peel them off one by one, or add them up with weights. More expensive than ordinary sorting.
OverdrawHow many times the pixel shader ran for one spot on the screen. Translucent layers, grass and smoke are drawn on top of each other and multiply the work.
Painter's algorithmDrawing from far to near, so that nearer things land on top. It fails on intersections and wastes work on what ends up covered. The depth buffer replaced it in 3D, but transparent objects and 2D games are still drawn this way.
Parallax correction, box projectionA correction of a cubemap for a room: the reflection ray is followed to a wall of a given box, and the probe is asked about the direction to that point on the wall. Without it, a reflection in a room slides along with the camera.

It is exact as long as the room is a box of the same shape. Furniture, round halls and a box of the wrong size bring the error back. Why a reflection slides around in a room.

PenumbraThe soft edge of a shadow, where the light source is only partly blocked. Its width is the size of the source × the height of the blocker / (the height of the source − the height of the blocker): the shadow is sharp at the base of an object and soft farther away.

The sun covers an angle of about 0.53° in the sky, so its penumbra is roughly a hundredth of the distance from the blocker. Soft edges.

Percentage-closer filtering, percentage-closer soft shadowsPCF compares several neighboring texels with the shadow map and takes the share that are in shadow: the edge is soft, but equally everywhere. PCSS first estimates the penumbra from the height of the blocker and blurs by that amount.
Per-object / per-instance dataNumbers that each object carries itself while sharing one material: the tint of a bush, a hit flash. The material is one, so the objects can be drawn with instancing.

In Unreal: Custom Primitive Data and Per Instance Custom Data; in Unity: MaterialPropertyBlock; in Godot: instance uniform. The lesson

Perspective divideDividing the coordinates by depth after the vertex shader. It is why twice as far means half the size.
Peter-panningThe shadow comes loose from the base of an object, and the object seems to hover above the floor. The cause is too large a shadow bias: floor points at the base count as lit.

Named after Peter Pan, the boy whose shadow came off. A smaller bias, thick geometry instead of single planes, back faces in the map and contact shadows all help. Bias and “floating” objects.

Physically based renderingThe approach where a material describes a substance (its color, roughness and metalness) and the engine works out the light from those numbers. So a single material looks right under any lighting.
Pipeline State ObjectA ready-made bundle of shaders and graphics card settings. If it is not built in advance, the driver builds it in the middle of the game, and the frame stutters.
Pivot / originThe origin of a model: the point it is rotated and scaled around, and the point that gets placed at the object’s position.
Pixel (fragment) shaderRuns for every pixel of a triangle and decides its color and the other channels of the material. It knows only its own inputs and cannot see neighboring pixels.
Planar reflectionsThe scene is drawn once more from a camera mirrored relative to the plane of the mirror or the water. The answer is complete, but the frame costs almost twice as much, and it works for only one plane.
Post Process VolumeAn invisible box in Unreal with its own settings for exposure, color and effects for the place inside it. Near the border the settings change smoothly (Blend Radius); where volumes overlap, the one with the higher Priority wins; with Infinite Extent it acts on the whole level.
Post-processingPasses over the finished frame: fog, glow, depth of field, motion blur, exposure and tonemapping. A shader here sees neighboring pixels, because the frame is already drawn.
Powerx to the power p. On values from 0 to 1, p above 1 darkens the midtones, p below 1 lightens them, and 0 and 1 do not move. This is how mask contrast is made.
Power of two, POT / NPOTA texture size such as 256, 512, 1024 or 2048: the side can be halved all the way down to 1, so the chain of mipmaps fits exactly. The sides may differ: 2048 × 512 is also made of powers of two.
Prefiltered cubemap, prefiltered environment mapA cubemap in which every mip level is blurred ahead of time for its own roughness: level 0 is a mirror, and the last levels are an almost matte patch. The shader picks the level by Roughness, so the blur costs one sample.

One part of the “split sum” method. The other part is a small table of Fresnel and microfacet shadowing by roughness and angle (EnvBRDF in Unreal). The assumption that you look at the surface head-on makes stretched reflections disappear. Roughness blurs the reflection.

Premultiplied alphaA format in which the color is multiplied by alpha in advance: (R × A, G × A, B × A, A). Filtering and blending with it are correct, with no dark fringe, and one material can both cover and glow.

The blending formula: new + old × (1 − α). In Unreal this is the AlphaComposite mode, in Unity Premultiply, in Godot Premultiplied Alpha.

ProfilerA tool that measures how long each part of a frame took on the CPU and the GPU. Look for the bottleneck from the general to the specific: what is slower, which pass, which object.
RasterizationThe stage where the graphics card finds the pixels whose centers fall inside a triangle. The hardware does it, and you do not program it.
Ray tracingFinding the first thing a ray hits by searching the scene itself, not the screen. The scene is sorted into nested boxes, and graphics cards find intersections on dedicated units. Few rays per pixel make the picture noisy, and a denoiser smooths it.

Shadows, reflections and indirect light are computed this way. Lumen first looks for an answer on the screen, then in a simplified copy of the scene. Rays and Lumen, Ray-traced shadows.

Rayleigh scatteringScattering of light on particles much smaller than the wavelength, such as air molecules. It grows inversely with the fourth power of the wavelength: blue bounces off almost 6 times more often than red, which is why the sky is blue and a low sun is red.
Reflectance at normal incidence, F0The share of light a surface reflects when you look at it head-on. For non-metals it is 2–5%, usually taken as 4%. For metals it is 50–100% and differs between channels.
Reflection probe, reflection captureA cubemap captured at a point in the level, together with the area where it is used. It is captured ahead of time or during play, rarely and in parts: six faces mean six extra frames of the scene.

A baked probe cannot see anything that moves. Every closed room needs a probe of its own, or it reflects the sky. Cubemap, When there is no answer.

Reflection vectorWhich way the reflection points from a spot on a surface: the gaze with its part along the normal flipped and its part along the surface kept. r = d − 2 (d · n) n.

d is the direction from the eye to the point, and n is the unit normal. The 2 is there because the part along the normal is subtracted twice: once to remove it, and once more to send it the other way. That is where “the angle of incidence equals the angle of reflection” comes from. Which way the reflection points.

RefractionA ray of light changes direction at the border of two substances, because light has different speeds in them. It makes a spoon in a glass look broken and the bottom look closer than it is.
Render passOne stage of the frame: the graphics card draws something into its own image — depth, the G-buffer, lighting, post-processing. Later passes read this image as a texture.

A pass over objects draws models through the vertex and pixel shaders. A pass over the screen works with finished images and runs a shader exactly once for every pixel, so its cost grows with the resolution, not with the scene. The order of the frame passes.

Render targetAn image in the graphics card’s memory that a pass draws into instead of the screen. Later passes read it as a texture. The screen is the last render target of the frame, and the depth buffer is one of the first.

Unreal also has a Render Target asset: the same kind of image, which you can draw into yourself, for example a view from a security camera or footprints in snow.

Rendering pipelineA triangle’s path to the screen: vertex shader, rasterization, interpolation, pixel shader, depth test and writing to the frame.
Reversed-ZDepth in a 32-bit float where the near plane is 1 and infinity is 0. Far things land where a float is most precise, and flicker in the distance almost disappears.
RoughnessHow unevenly the tiny facets of a surface are tilted: 0 is a mirror, 1 is fully matte. The higher it is, the wider and dimmer the highlight.
Runtime Virtual TextureRuntime Virtual Texture, in Unreal: a texture that the ground draws its look into, so that other materials, such as roads and rocks, can read it and match the ground. It also caches the ground’s shading over large areas.
Saturate / ClampAn operation that cuts a value off: below 0 becomes 0, above 1 becomes 1. It is placed after addition and contrast, before lerp.
ScalabilityOne scene with different quality levels for different hardware: every item of the frame, such as shadows, grass, reflections, post-processing and resolution, has its own dial from Low to Epic.
Screen spaceWhere a point lands on the screen: a pixel across and a pixel down, plus depth. It is used for effects on the whole frame and for the interface.
Screen space reflections, SSRReflections taken from the finished frame: a ray marches in steps, and each point is compared with the depth buffer. When the ray hits a visible surface, its color is taken from the frame.

They are accurate and work with moving objects, but they cannot see what is beyond the edge of the frame, behind objects and behind the camera. Objects are given a thickness: too small and the reflection breaks up, too big and extra tails appear. Screen space reflections.

Screen-space ambient occlusionShading of crevices computed from the frame: for a pixel, it looks at the depth of the neighbors, and if many are closer to the camera, the point is in a pit and the indirect light there is dimmed. It sees only the screen: it disappears at the edges and leaves a halo around characters.
Screen-space derivatives (ddx, ddy), 2×2 quadsThe graphics card computes pixels in 2 × 2 squares, and that is how it learns how fast the UV changes toward a neighbor. It uses this to choose the mipmap level.
Seamless / tileable textureA texture whose left edge continues the right one and whose top edge continues the bottom. Only such a texture can repeat without visible joins.
ShaderA small program that runs on the graphics card for every vertex or every pixel and decides where it goes or what color it gets. Materials in Unreal and Unity are built on shaders; a custom shader is one a team writes itself for a special look.
Shader permutationA separate version of a shader for each combination of static switches, mesh type and pass. Each one has to be compiled and stored.
Shading modelThe formula by which light lands on a surface: standard, skin, cloth, hair, clear coat. In deferred rendering the set of models is fixed: the model number is stored in the G-buffer.

In Unreal the model number takes 4 bits in GBufferB, so there are at most 16 models. A custom model, for example a cartoon one, is added by modifying the engine or assembled in post-processing from the G-buffer.

Shadow acneStripes and ripples on a lit surface: it shades itself, because a texel of the map holds the depth of its center, and the surface inside the texel slopes farther from the lamp.

Strongest in grazing light. The fix is shadow bias, by slope or by normal. Shadow acne.

Shadow bias, slope bias, normal biasA small shift of a point toward the lamp, or out of the surface along its normal, before it is compared with the shadow map, so that the surface does not shade itself. Too large a bias pulls the shadow off the object.

Constant bias is one number for everything. Slope bias grows as the tangent of the angle between the normal and the light. Normal offset is a shift by a fraction of a texel, and half a texel is enough at any angle. Why bias depends on the slope.

Shadow map, shadow mappingA depth buffer drawn from the position of the light: each texel holds the distance from the lamp to the nearest surface in that direction. A point is in shadow if the map holds less than the point’s own distance to the lamp.

The frame is drawn in two passes: first the scene is drawn from the lamp, recording only depth, then the two distances are compared for each pixel. The map’s problems, jagged edges, shadow acne and shimmering, come from a texel storing one number for a strip of the world. Shadow map.

Signed distance field, SDFA map that stores, at every point, the distance to the nearest edge of a shape, often with a sign: positive outside, negative inside. Effects use it to fade something with distance from an edge, such as making trees taller deeper inside a forest.
Sky light, environment lightingLighting from a panorama of the sky: a face looking up gets the blue sky, a face looking down gets the reflected ground. By itself it knows nothing about walls, so without AO and sky occlusion it shines into caves too.
Smooth shadingThe normals at the vertices are averaged and blended smoothly inside each triangle, so a faceted model looks smooth. A hard edge is where the normals are deliberately kept separate.
Specular aliasingFlicker of highlights on a smooth surface with a fine normal map: the shader reads the bumps at one point of the pixel, and the highlight flashes on and off. MSAA does not fix it; roughness in the mipmaps and temporal anti-aliasing do.

In Unreal it is Composite Texture on the roughness texture; in Godot, Screen Space Roughness Limiter. What an artist can do.

Specular occlusionDims the reflection where a point sees little of its surroundings: in crevices, in corners, behind a cabinet. It is derived from AO, because a probe captured at one point does not know that.

A related trick is to dim the part of the reflection that a normal map has turned to point below the surface. When there is no answer.

Specular reflectionLight that reflects off the surface itself without going inside. On non-metals it has the color of the light source and is weak, 2–5% head-on. On metals it is tinted and strong.
sRGBA way of writing color along a curve that resembles the eye’s sensitivity: dark shades get more steps. The sRGB checkbox is ticked only for color the eye sees; normals, roughness and masks are data, and the curve distorts them.

Light ≈ value2.2: 128 out of 255 is about 22% of the light, and 188 is half. The shader converts the value to light when it reads it, and the frame converts it back at the end. Lesson on gamma and sRGB.

Static SwitchA choice of graph branch made when the shader is built. A branch that is switched off costs nothing, but every combination of switches is a separate shader.
Stencil bufferOne more small number per pixel next to the depth, usually 8 bits. It works as a mask that is written and tested so that drawing happens only in the marked pixels: outlines, portals, decals.
Supersampling, SSAAThe frame is drawn at a higher resolution and shrunk, averaging neighboring samples. The shader runs for every sample, so any aliasing is fixed, but the work grows by the same factor.
Surface cache, mesh cardsSimplified “photographs” of every model from several sides, on which Lumen stores the material and the light. A ray that hits a model takes its light from here. In each frame, part of the cards are relit, so the bounces build up over frames.
TangentAn arrow on the surface that points the way the U coordinate of the UV map grows. Together with the bitangent and the normal, it sets the axes of tangent space.
Tangent spaceA coordinate system tied to the surface: X and Y run along it, and Z points out. Normal maps are usually recorded in it, which is why a flat spot in them is always lilac.
Temporal anti-aliasing, TAAEvery frame the camera is shifted by a fraction of a pixel, and the new frame is mixed into an accumulated history in a small share. Motion vectors say where in the history to read the point that was there before. The price is ghosting and blur in motion.

The history is checked against the pixel’s neighbors in the new frame and rejected if no such color is nearby. Temporal anti-aliasing.

Temporal Super ResolutionThe anti-aliasing and upscaling of Unreal 5, on by default: temporal anti-aliasing that also assembles the full resolution from a smaller frame. It works on any modern graphics card.
TexelA pixel of a texture.
Texel densityHow many texture pixels fall on one meter of surface. Neighboring models should have similar density, or one of them looks blurry.

It is computed as resolution × the share of the texture the unwrap covers / the size of the object. A 2048 texture, an object 2 m long and an unwrap filling the whole texture give 1,024 texels per meter.

TextureAn image that a material reads as a table of numbers: it can hold color, normal directions or masks.
Texture filteringHow the graphics card takes a color between texel centers: the nearest texel (crisp squares) or a blend of the four neighbors (bilinear).
Texture streaming, mipmap streamingThe engine keeps in video memory only those mipmaps of a texture that the frame needs at its size on screen, and loads the detailed ones as you come closer. If the pool overflows, textures stay blurry.
Tile-based rendering, TBDRMobile graphics cards draw the screen in small tiles held in fast memory. Apple and PowerVR cards first find the nearest triangle in each pixel of the tile and only then run the shader.
TilingRepeating a texture over a surface. A texture tiled N times is N times smaller, and on a large area its repeat can show as a pattern.
TintA color used to color a texture so that its hue changes, most often by multiplication.
Tone curveA graph of an operation on a channel: the value before runs horizontally, the value after vertically. It shows what the operation does to darks, midtones and lights.
Tonemapping, tone mappingA curve that turns any brightness of an HDR frame, from 0 to infinity, into the 0…1 range of the screen. Shadows get slightly darker, the middle runs almost straight, and bright values are squeezed gently toward white, as on film. Without it, everything above 1 is clipped to the same white.

Applied to each channel, the curve turns bright saturated colors toward white: fire turns yellow. ACES, Filmic, AgX and Reinhard are different curves. Tone mapping.

TransformAn object’s translation, rotation and scale. They are applied in the order scale, rotation, translation, and stored as one matrix.
Transparency sortingTransparent objects are drawn after opaque ones, from far to near, ordered by a single point, usually the center of the bounding box. It goes wrong at intersections, with large objects and with the triangles of one model.
Triplanar mappingA texture without UV unwrapping: three projections along the world axes are mixed by the surface normal, so cliffs and steep slopes get no seams or stretching. Each texture is read three times.
Uber shaderOne big shader for everything, with many switches. It is a handy way to start, but hard to maintain, and the number of its variants grows as a power of two.
Uniform / constant bufferA small block of graphics-card memory that holds a material’s parameters: the same numbers for every pixel of one draw call. Changing a parameter means writing other numbers into it.
Upscaling, super resolutionThe frame is drawn smaller than the screen, and the full one is assembled from the history using jitter and motion vectors. Performance mode is half the side and a quarter of the pixels. DLSS, FSR, XeSS and TSR differ in how they decide what in the history to trust.
UV coordinatesThe address of a point of the model in the texture: two fractions from 0 to 1, stored at the vertices.
UV seamAn edge along which the model was cut during unwrapping. The picture may not line up across a seam, so seams are hidden.
UV stretchingA piece of the unwrap is out of proportion with its place on the model, so the texture is stretched across it. A checker texture shows it.
UV unwrapA model cut open and laid flat, like a sewing pattern. The UV addresses are read from it.
VertexA point of a mesh or a terrain grid. It stores a position and often a normal, UV coordinates and other data.
Vertex colorA color stored directly at the vertices of a model. It is painted with a brush and used as a mask, for example to wipe moss off in the right place.
Vertex shaderRuns for each vertex: it converts it to screen coordinates and can move it, for example to make grass sway.
Vertical sync, V-SyncA frame is shown only at the moment the screen refreshes. The image does not tear, but a frame that is late by even a millisecond waits for the next refresh: on a 60 Hz screen, 60 frames drop straight to 30. Turn it off before you measure.
Video memory, VRAMThe memory of the graphics card itself: textures, meshes, shadow maps, the G-buffer, lighting caches. Gaming graphics cards usually have 8–16 GB. While everything fits, it costs almost nothing; once it overflows, you get blurry textures, stutters and a drop in frame rate.
View (camera) spaceCoordinates measured from the camera: forward, right, up. Getting there is the inverse of the camera’s transform: it is not the camera that moves, but the whole world.
VignetteDarkening of the frame edges, as in a lens. Together with grain, chromatic aberration and lens flare, it is one of the camera flaws that games add on purpose. In moderation they guide the eye; too many smear the frame.
Virtual shadow maps, VSMAn enormous shadow map, 16,384 × 16,384, split into pages of 128 × 128: the engine draws only the pages that visible pixels need, and keeps them between frames. A texel is about the size of a screen pixel.

The default shadow method of Unreal Engine 5, designed for Nanite. Anything that moves invalidates its own pages every frame. EEVEE in Blender has used virtual shadow maps since version 4.2 too. Virtual shadow maps.

Volumetric fogFog computed in a grid of cells in front of the camera: each cell holds the density and the light from the lamps, with shadows taken into account. It gives rays through foliage and cones of light from flashlights. It is expensive, accumulates over several frames, and can leave trails.
Warp / wavefrontA group of 32 or 64 shader runs that the graphics card executes with a single command. If they diverge at a branch, the group goes through both branches.
White noiseAn independent random number in every pixel. Neighbors are not connected, so you get grain, like sand or a screen with no signal, not patches.
World Position OffsetA material input that moves each vertex in the vertex shader. This is how grass and waves sway. It does not change the collision or the bounds of the object.
World spaceCoordinates measured from the origin of the level, shared by everything. Objects are placed in it, and “up,” the wind and the sun live in it.
World-aligned texture, planar projectionA texture laid onto a surface by its position in the world, not by the object’s own texture coordinates. Its pattern keeps the same size on every surface, however the object is scaled, which makes a grid on blockout boxes a ruler. In Unreal, the WorldAlignedTexture material node does this.
Z-fightingStripes and ripples where two surfaces almost coincide: the depth buffer cannot tell them apart, and rounding picks the winner in each pixel.

Math and physics

109 terms
AccelerationHow much the velocity changes per second, in m/s². Speeding up, braking and turning are all acceleration. Earth’s gravity gives 9.8 m/s² downward.

In a turn the speedometer stays put while the direction of the velocity changes: the acceleration points toward the center and equals v² / r. Every frame the game does velocity += acceleration × Δt.

AmplitudeThe size of a wave: how far the value moves away from the middle in each direction. In the formula center + amplitude × sin(…), it is the factor in front of the sine.
Archimedes' principleA submerged body is pushed up with a force equal to the weight of the water that would fill the space of its submerged part. Every liter under water pushes up with about 9.8 N.
atan2, two-argument arctangentThe angle of an arrow (x, y) from the x axis, with the quadrant taken into account: from −180° to 180°. The order is y first, then x. Unlike atan(y / x), it keeps the signs and does not divide by zero.
Axis-aligned bounding boxA box whose sides run along the world axes. Two such boxes touch only if their shadows overlap on every axis: six comparisons.
Axis-angleA rotation written as one unit axis and one angle around it. By Euler’s theorem, any rotation in 3D can be written this way.
Backface cullingThe graphics card does not draw triangles that show their back side to the camera: it computes the sign of their area on screen and throws out those whose winding is not the front. In a closed model about half of the faces disappear this way. For foliage and cloth, culling is turned off with a two-sided material.
Barycentric coordinatesThree shares, adding up to 1, that tell how much each vertex of a triangle contributes to a point inside it. The share of a vertex is the area of the triangle opposite it divided by the area of the whole. The graphics card uses them to blend UVs, normals and vertex colors.
Bit, byteA bit is one cell of memory, 0 or 1. A byte is eight bits. n bits give 2 to the power n values: 8 bits give 256, 16 give 65,536, 32 give about 4.3 billion.

Binary notation works like ordinary notation, except that the places are worth not 1, 10, 100 but 1, 2, 4, 8: 13 = 8 + 4 + 1, which is 1101. Whether a row of bits is a number, a letter or a color is a matter of agreement on how to read it.

Blue noisePoints or values spread at random but evenly, with no clumps and no big gaps. It is what a good dither pattern or a good scatter of trees looks like.
Bounding sphereA sphere that contains the whole object. Two spheres touch when the distance between their centers is less than the sum of their radii: the cheapest contact test.
Broad phaseThe first, rough pass of collision detection: a grid or a tree of boxes throws out distant pairs. The narrow phase then tests the remaining pairs exactly.

Without it, there are n × (n − 1) / 2 pairs: 1000 objects make almost half a million pairs per step.

BuoyancyThe force with which water pushes a submerged object up: water density × g × submerged volume. It grows with depth until the object is fully under water.

Games do not compute it from the volume. They compute it at a few sample points, each giving an upward force proportional to its own depth, with damping.

Buoyancy sample points (pontoons)A few points on the hull (usually 3 to 8). At each one, the game computes the depth under the wave and an upward force: stiffness × depth − damping × velocity difference from the water.

Points at the edges produce the roll by themselves, while a single point at the center of mass gives only rising and sinking. A wave shorter than twice the spacing between the points slips through between them.

Center of buoyancyThe center of the water that the hull has displaced, which is the point where the buoyant force acts. When the boat tilts, it shifts toward the low side.

A boat rights itself while its center of mass is below the metacenter, the point through which the line of the buoyant force passes at a small tilt. For a boat with straight sides, the metacenter is width² / (12 × draft) above the center of buoyancy.

Center of massThe point where an object is “on average,” and where gravity seems to act. A force through it only moves the object; a force that misses it also spins the object.

An object stands while its center of mass is over its base of support. A high center of mass tips over from a small tilt, which is why cars in games often get it lowered.

ClampKeeps a number from going past the ends: clamp(x, min, max) returns min if x is smaller, max if x is larger, and x itself in between. Clamping to 0…1 is called saturate.
ColliderAn invisible, simplified model of an object that physics uses to compute touches, impacts and rays. The model you see can be complex; the collider is crude.

If the collider is bigger than the model, the hero stands in the air. If it is smaller, the hero sinks into the edge.

Collision shapeA simple invisible shape that the engine uses instead of a detailed model to find what touches what: a sphere, a box, a capsule. A game character usually moves as a capsule, which is often bigger than the visible model.
Contact normalThe direction in which two touching bodies are easiest to separate. It is used to push them apart, reflect the velocity and compute friction.
Continuous collision detection (CCD)Instead of asking “do they overlap right now?”, the check asks “will they touch on the way?”: the body is swept from its previous position to the new one, and the time of impact is found. It cures tunneling of fast bodies.

It costs more than an ordinary check, steals the rest of the step from the body, and with a straight-line sweep it does not see rotation. So it is turned on only for small, fast bodies.

Convex hullThe tightest convex solid around a model, like a rubber band stretched over nails: it lies along the bumps and jumps over the hollows.

A shape is convex if the segment between any two of its points lies inside it. Concave objects (an arch, a chair) are built from several convex parts, or the hull closes the passages.

CosineHow far a point on a circle of radius 1 has moved sideways at an angle: 1 at 0°, 0.5 at 60°, 0 at 90°. It is also the share of a length-1 arrow that points along another direction.
Critical dampingDamping of 2√(stiffness × mass), which is ζ = 1: the fastest approach to the target without overshoot. A good door closer works this way, and so does SmoothDamp in Unity.

The curve (1 + ωt) × e^(−ωt) covers half the distance in 1.68 / ω seconds and 90% of it in 3.89 / ω.

Cross productAn arrow perpendicular to two arrows a and b, as long as the area of the parallelogram they span: |a| × |b| × sin θ. The hand rule picks the side, so b × a = −(a × b). In 2D it is a single number, a.x × b.y − a.y × b.x, the area with a sign: plus if b is to the left of a.

Each component of a × b is the area of the parallelogram’s shadow on the plane of the other two axes: z is the shadow on the floor. It gives you the normal of a triangle, “left or right,” the axes of a camera and torque.

DampingA simplified drag in engines: on every step the velocity is multiplied by a number slightly below one. Mass does not matter, and the slowing is exponential.

In Godot, on every step the velocity is multiplied by (1 − damping / steps per second). Together with gravity this gives a terminal velocity of g / damping. Linear Damping slows motion, and Angular Damping slows rotation.

Damping ratioDamping as a fraction of the critical damping: ζ = damping / 2√(stiffness × mass). Below 1, the spring overshoots and swings; at 1, it does not overshoot; above 1, it is sluggish.

Overshoot after release: 53% at ζ = 0.2, 16% at 0.5, 5% at 0.7. The suspension of a passenger car is about 0.25.

Delta timeHow much time has passed since the previous frame: at 60 frames per second, about 0.0167 s. Everything defined “per second” is multiplied by it, so that motion does not depend on the frame rate.
DensityHow much a cubic meter of a material weighs: water 1,000 kg, pine about 500, ice 917, steel 7,850. Denser than water sinks, lighter floats.

For a hollow object, use the average density: the whole weight over the whole volume, air inside included. That is why a steel ship floats and a steel nail sinks.

DeterminantThe factor by which a matrix changes areas (in 3D, volumes). For a 2 × 2 matrix it is a × d − b × c, the area of the square on the new axes. A minus sign means the world is mirrored and the winding order is flipped. Zero means everything has collapsed and the matrix has no inverse.
Dot productOne number from two arrows: how far one runs along the other. a.x × b.x + a.y × b.y + a.z × b.z. For arrows of length 1 it is the cosine of the angle: 1 means the same direction, 0 means sideways, −1 means opposite.

It is used for the brightness of a surface, for “does the surface face up” in moss, for an enemy’s field of view, and for rim lighting.

Draft (draught)The depth to which a floating object sinks, until the buoyancy equals its weight. For a block with straight sides, the share under water equals the ratio of the densities.

Around the draft, the object bobs like a weight on a spring, with a period of 2π√(draft / g): 1.1 s for a draft of 30 cm, 6.3 s for 10 m.

DragThe force with which air or water resists motion, against the velocity. Slow and sticky: proportional to the speed. Fast: proportional to its square, k × v².

The number k bundles the area facing the motion, the shape and the density of the medium. Water is about 800 times denser than air. Engines usually replace drag with damping.

EasingA curve that you run an evenly growing time through before the lerp: ease in, ease out or both (ease in-out). That is how a door or a camera starts and stops gently.
Edge functionThe 2D cross product of a triangle’s edge and the step to a point: (B − A) × (P − A). Its sign tells you which side of the edge the point is on. If all three edge functions have the same sign, the point is inside, which is how a rasterizer finds the pixels of a triangle.
Epsilon comparisonFractional numbers are not compared for exact equality. Instead, you ask whether the difference is smaller than a tolerance. After some calculations 1 becomes 0.9999999, and an “equals” check fails.
Euler anglesA rotation written as three angles applied in turn around three axes, for example yaw, pitch and roll. Easy for a person to read, but they depend on the order, run into gimbal lock and blend badly.
Euler integrationThe simplest way to step through time: velocity += acceleration × Δt, position += velocity × Δt. The error is proportional to the step. The semi-implicit variant updates the velocity first, and it is stable.

Explicit Euler moves the position by the velocity at the start of the step and adds energy: a spring swings wider and wider. Semi-implicit Euler uses the velocity at the end of the step and keeps the amplitude. The exact step for constant acceleration is position += velocity × Δt + acceleration × Δt² / 2: the area of the trapezoid under the velocity graph.

Exponential smoothingCovering the same fraction of the remaining distance to the target at every step: the remainder is multiplied, so it shrinks ever more slowly. To make this independent of the frame rate, the fraction per frame is 1 − exp(−speed × frame time).
Fixed timestepThe physics runs in even steps, for example 1/60 s each, separately from the frames. A time accumulator decides how many steps to take in a frame, and the rendering is smoothed between steps.

An even step gives the same physics on every computer, which makes replays and networked play possible. If a step takes longer to compute than it lasts, the spiral of death begins: frames get longer and steps more numerous. A cap on steps per frame trades freezing for slowing down.

Floating-point number, float, doubleScientific notation in binary: significant digits and a power of two. A 32-bit float has about 7 significant digits, a 64-bit double about 16. The step between neighboring numbers grows with the size of the number.
ForceWhatever changes velocity: a push, a pull, gravity. It is a vector. Acceleration = force / mass; several forces add up like arrows, and the net force decides.

A newton is the force that speeds up 1 kg by 1 m/s every second. A net force of zero means “the velocity does not change,” not “it is standing still.” An engine takes a force on every step (Add Force) and multiplies it by Δt itself.

Frequency, periodFrequency is the number of full swings per second, in hertz. The period is the time of one swing: 1 / frequency. 0.5 Hz is one swing every 2 seconds.
FrictionA force along a surface, against the motion or against an attempt to move. It is proportional to how hard the surfaces are pressed together: μ × N. Static friction holds up to a limit; sliding friction is usually lower.

Contact area does not affect friction. A crate on a slope stays put while tan θ ≤ the static μ. Engines store friction in a physical material, and for a pair of surfaces they combine the two values into one number, by default the average.

Gerstner wavesWaves in which the points of the surface go in circles, not only up and down: sharp crests and gentle troughs. The steepness sets the horizontal shift.

For physics there is a catch: the point above x came from another place, so the height above x is found with several refinements. Too large a steepness turns a crest into a loop.

Gimbal lockWhen the middle of the three Euler angles is 90°, the axes of the first and third rotations line up: two angles turn the object the same way, and one movement disappears. This is why a camera tumbles when it looks straight up.
GravityThe pull that makes things fall. Near the Earth it speeds every falling object up by about 9.8 m/s each second, whatever its mass. In a game it is a setting: stronger gravity makes a jump of the same launch speed lower, shorter and quicker.
Half-precision float, FP16A floating-point number of 16 bits: about three significant digits, maximum 65,504. It stores the HDR light of a frame, mesh UVs and much else in shaders, wherever memory is tight.
Hash-based randomA random number computed from an address (the coordinates of a cell or the index of a point) and a seed. One address always gives one number, neighboring addresses give completely different ones, and no queue or memory is needed. The basis of noise and of randomness in shaders.
Hooke's lawThe force of a spring is proportional to the displacement from the rest point and points back toward it: F = −k × x. Stretch it twice as far, and it pulls twice as hard.
Identity matrixThe matrix that changes nothing: the axes stay where they were, x′ = (1, 0), y′ = (0, 1). For matrices it plays the role of multiplying by 1.
ImpulseForce × the time it acts. It changes the velocity at once by impulse / mass. Use it for one-off events: a hit, a jump, an explosion.

An impulse applied every frame depends on the frame rate, and a force applied once does almost nothing. The Vel Change checkbox ignores mass. Recoil: the bullet’s impulse forward equals the rifle’s impulse backward.

Integer overflowA whole number goes past its limit and jumps to the other end, like an odometer after 999999: in a byte 255 + 1 = 0, in a signed byte 127 + 1 = −128.

Negative numbers are stored in two’s complement: the second half of the circle of values is read as negative, and the row 11111111 is −1. The limits: 8 bits signed run from −128 to 127, 32 bits hold about ±2.1 billion, and 64 bits about ±9.2 × 1018.

Inverse lerpWhat fraction of the way from A to B you have covered if you are at x: t = (x − A) / (B − A). 0 means you are at A, 1 means you are at B, and outside that range the result is below 0 or above 1. A health of 35 out of 140 gives the fraction 0.25.
Inverse matrixA matrix that undoes a given one: M⁻¹ × M = the identity matrix. Steps are undone in reverse order. It carries points from the world back into the space of an object. A matrix with a zero determinant has none.
Linear interpolationWalk a fraction t of the way from A to B: A + (B − A) × t, or equivalently A × (1 − t) + B × t. At t = 0 it is pure A, at t = 1 pure B, and outside 0…1 it goes past the ends.

t is the fraction of the second input. A mask gives each pixel its t, so lerp lays one material over another. The same operation blends poses in animation and volumes in a smooth transition between sounds.

Mantissa (significand) and exponentThe two parts of a floating-point number: the mantissa holds the significant digits, and the exponent says which power of two to multiply them by. A float has 1 sign bit, 8 exponent bits and 23 mantissa bits.
MassA measure of how hard it is to change an object’s velocity, in kilograms. The same push speeds up a loaded cart less than an empty one: acceleration = force / mass.

In Unreal, mass is computed by default from the collision volume and the material density: a model twice as large weighs 8 times as much. Mass has no effect on a fall without air.

Matrix multiplicationA matrix that does one transformation, then another. In A × B, B acts first, so you read it right to left. Order matters: A × B is usually not equal to B × A.

The columns of A × B are the columns of B passed through A. That gives the “row times column” rule: each number of the answer is the dot product of a row of A with a column of B.

NaN, infinitySpecial float values. 1 / 0 gives infinity, while 0 / 0 and the square root of −1 give NaN, “not a number.” NaN is contagious: any operation with it gives NaN, and on screen it spreads as black squares.
Normal forceThe force with which a surface pushes an object straight away from itself, along the normal. It is exactly as large as needed to keep the object from sinking in, and friction depends on it.

On a slope at angle θ, the surface cancels the part of the weight across the slope, weight × cos θ, while the part along the slope, weight × sin θ, pulls the object down.

NormalizeDivide a vector by its length: the direction stays, and the length becomes 1. It is needed when only “which way” matters and “how much” is set separately.
Normalized lerpA lerp of the four quaternion numbers followed by normalizing the result. The path is the same as slerp’s, and the speed is slightly uneven at large angles, but it is cheaper. It is the basis of animation blending.
Origin shifting, floating originA technique for huge worlds on ordinary precision: when the player has gone far, the whole world is shifted so that the player is back at the origin. Precision is kept, but the game logic gets more complicated.
OscillationMotion back and forth around a rest point: energy flows from the stretch into speed and back again. For a spring without friction, it is a sine wave.
Penetration depthHow far two bodies have sunk into each other during one physics step. They are pushed apart along the contact normal by that depth, usually softly and not all the way.
PhaseThe shift of a wave around the circle: the point on the circle where the swing starts. Identical waves with different phases are out of step, and a phase taken from position turns a sway in unison into a traveling wave.
Poisson disk samplingScattering points at random so that no two are closer than a set distance: each new point is kept only if it has enough room. The result looks natural, with no clumps and no regular grid.
Probability distributionWhich results come up, and how often. One die is uniform: every face equally often. The sum of two is a triangle peaking at 7. The sum of many is a bell, the normal distribution.
Pseudo-random distributionThe chance of a trigger grows with each failure and resets after a success. The average stays at the stated value, and long streaks disappear. In Dota 2, a 25% chance starts at about 8.5% and reaches 100% by the 12th attempt.
Pseudo-random numbers, PRNGNumbers that look random but come from a formula, which turns one number into the next. With the same starting number, the seed, the sequence always repeats.

The old recipe is the linear congruential generator: next = (a × previous + c) modulo m. There are only m different numbers, so the sequence has a period, and bad generators show patterns: alternating parity, stripes. Modern ones (xorshift, PCG) also scramble the digits.

QuaternionA rotation as four numbers: the axis multiplied by the sine of half the angle, and the cosine of half the angle. Its length is 1, and q and −q are the same pose. Rotations chain by multiplication and blend with slerp, and there is no gimbal lock.

The angle is halved because a point is rotated with a “sandwich,” q × p × q⁻¹: the quaternion acts twice, and each side contributes half of the turn. A 360° rotation gives −q, and 720° gives q again.

RadianThe angle at which the arc equals the radius, about 57.3°. A full turn is 2π ≈ 6.28 radians, and a half turn is π. In radians, arc = radius × angle, which is why formulas and shaders count angles in them.
RaycastA question to the physics: what is the first thing along this line? The answer is the hit point, the normal, the distance and the object. Shots, ground checks, visibility.
Remap, map rangeMoving a number from one scale to another: an inverse lerp finds the fraction on the old scale, and a lerp marks off the same fraction on the new one. A sine from −1…1 turned into a brightness of 0…1 is 0.5 + 0.5 × sin.
RestitutionThe fraction of the velocity along the normal that comes back after an impact: 0 means no bounce, 1 means no loss. The bounce height is multiplied by e².

v' = v − (1 + e) × (v · n) × n. Restitution belongs to a pair of materials: engines combine the two numbers into one, by default with the average.

Right-hand ruleHow to find where a × b points: curl the fingers of your right hand from a toward b, and your thumb shows the direction. This holds in right-handed coordinate systems, such as Blender and Godot. In left-handed ones, such as Unreal and Unity, the left hand shows the same.
ScalarAn ordinary number, as opposed to a vector: a speed of 5 m/s, a frame time, a brightness. Multiplying a vector by a scalar changes its length, and a negative scalar also turns it around.
SeedA number that picks one variant of a random pattern. The same seed always gives the same result, and a different seed gives another shape with the same settings.
Separating axisA direction along which the shadows of two bodies do not overlap. If one exists, a flat sheet fits between the bodies and they do not touch. It works only for convex shapes.

For two rectangles you test 4 axes perpendicular to the sides, and for two boxes in 3D you test 15. The axis with the smallest overlap gives the contact normal and depth.

Shear, skewA transformation in which one axis stays put and the other tilts, like a stack of books pushed sideways. The area does not change. Grass and trees sway in the wind this way.
Shuffle bagRandom choice without replacement: outcomes go into a bag in the right proportions, you draw until the bag is empty, then refill it. The shares are exact and long streaks cannot happen. Modern Tetris deals pieces this way.
SineThe height of the point on a circle of radius 1 at angle a: sin a, from −1 to 1. The sine of time is a smooth wave, used to sway grass and boats and to flicker lights.

The sine is the cosine delayed by a quarter turn: sin a = cos(a − 90°). The general formula for a wave is center + amplitude × sin(2π × frequency × time + phase).

SmoothstepA soft transition from 0 to 1: 3t² − 2t³. The curve is flat at both ends, so the edges of masks and the start of a motion do not jerk. In shaders, smoothstep(edge0, edge1, x) also does an inverse lerp and a clamp.

The formula is a lerp from the ease in t² to the ease out 1 − (1 − t)², with the fraction t. Smootherstep is even softer: 6t⁵ − 15t⁴ + 10t³.

Speculative contactsA contact for the future: at the start of the step the engine finds everything the body could reach and does not let it close the gap faster than gap / step time. It is cheap and catches rotation, but sometimes the body hits thin air near corners.
Spherical linear interpolationA smooth transition between two quaternions along the arc: a rotation around one axis, by the short path and at constant speed. If the dot product is negative, one pose is taken with a minus sign, so that the path is the short one.
SpringA force that pulls toward a target, harder the farther away it is: −stiffness × displacement. With damping, it gives a smooth arrival at the target: a camera, recoil, a suspension.

A spring changes the acceleration, not the speed, so it speeds up and slows down smoothly. You tune it with a frequency and a damping ratio ζ.

Spring armA pole from the hero to the camera that shortens when a wall gets between them. Its “spring” is about walls; the smoothness of following is set separately.

In Unreal, the smoothness is Camera Lag Speed: a fraction of the distance per frame, not a spring. SpringArm3D in Godot has no smoothing at all.

Spring bonesBones that a spring pulls toward the pose from the animation and that swing on their inertia: braids, tails, ears, bags.
StiffnessHow many newtons a spring gives for every meter of displacement. Stiffer means faster swinging: ω = √(stiffness / mass).

An artist finds it easier to set a frequency f: stiffness = mass × (2π × f)². A 100 N/m spring with a 1 kg weight swings 1.6 times per second.

SubsteppingThe physics step is split into several smaller ones: more snapshots, a shorter distance per step, fewer cases of tunneling. The price is that all the physics runs that many times as often.
SweepA ray for a thick body: a sphere, capsule or box is dragged along a path to find its first touch. This is how heroes are moved and fast bodies are caught.

A sweep of a sphere of radius R is the same ray, only with the walls moved out by R and the spheres inflated by R.

Terminal velocityThe speed at which drag equals the weight, so the fall stops accelerating. About 55 m/s for a person falling belly down, about 5 m/s with a parachute.

With drag k × v², it is √(mass × g / k): the more mass per unit of area, the faster the body falls. A raindrop never falls faster than 9 m/s.

Time of impact (TOI)The fraction of the step at which two bodies first touch. For spheres it is the first root of the quadratic equation |d + w·t|² = R². For complex shapes it is found by cautious jumps.
TorqueThe turning effect of a force: lever arm × the part of the force across the arm. You push a door at the handle because the arm is longest there; a force along the arm turns nothing.

In 3D, torque is a vector along the axis of rotation, the cross product of the arm and the force. The moment of inertia plays the role of mass for rotation: mass far from the axis is harder to spin.

TrajectoryThe path an object follows. For a thrown object under gravity alone it is a parabola: position(t) = start + velocity × t + acceleration × t² / 2.
Transformation matrixA table whose columns are the new axes (and, in the last column, the pivot). Multiplying the matrix by a point follows the point’s recipe along the new axes. This is how points are converted from one space to another.
TransposeTo swap the rows and columns of a matrix, flipping it across its diagonal. For a rotation, the transpose is the inverse, because the axes are perpendicular and have length 1.

The inverse transpose matrix carries normals: it keeps a normal perpendicular to the surface under a non-uniform scale.

TriggerAn invisible volume in a level that pushes nothing but reports when something enters it, stays in it or leaves it. Level designers use triggers to start events: open a door, call in enemies, play a scene.
TunnelingA fast body passes through an obstacle: physics checks for contacts only at snapshots, and no snapshot caught the body inside the wall. It can happen when the distance per step is greater than the wall thickness plus the body size.

The chance of catching the body in the wall is (thickness + size) / distance per step. Catching it is reliable only if the distance per step is less than half this window: a snapshot past the middle of the wall pushes the body out the far side.

Unit circleThe circle of radius 1 centered at the origin. The point on it at angle a is (cos a, sin a), and its distance to the center is always 1: cos² + sin² = 1.
Unit vectorA vector of length 1, a pure direction. Normals and directions to a light are kept at length 1 so that the dot product gives the cosine.
VectorA step of “how far to go and in which direction”, written as numbers: (x, y) or (x, y, z). A vector has no place, only a direction and a length. Velocity, a normal, the direction to the sun, even a color are all vectors.
Vector length, magnitudeHow far a step goes in a straight line: √(x² + y² + z²), the Pythagorean theorem. The length of the vector between two points is the distance between them.
Vector projectionThe part of a vector that runs along a given direction: (b · a) × a for a unit vector a. What is left runs across. This is how sliding along a wall and sliding down a slope work.
Velocity, speedHow much the position changes per second, in m/s. It is a vector: the direction is where the object is moving, the length is how fast. The speedometer shows the length.

Velocity can be read from the marks left at equal intervals of time: the gap between neighboring marks is velocity × the time between them. Every frame the game does position += velocity × Δt.

Weighted randomA random choice where the options have different weights. The weights are laid out as segments on a ruler, and a point is thrown onto it. An option’s share is its weight divided by the sum of all the weights.
Winding orderThe order in which the vertices of a triangle are listed: seen from one side the path runs clockwise, seen from the other, counterclockwise. A program agrees on which winding is the front, and uses it to decide which side of the face to draw and which way the normal points.

Blender treats counterclockwise as the front, Unity and Godot treat clockwise. A mirror, that is, a scale of −1 along one axis, reverses the winding.

Yaw, pitch, rollThe three rotations of a plane. Yaw swings the nose left or right around the vertical axis, pitch tips it up or down around the axis along the wings, and roll tilts the wings around the axis from tail to nose.

Art

9 terms
Aerial perspective, atmospheric perspectiveThe farther an object is, the less contrast and detail it has, the paler its colors and the more they shift toward the background color, usually bluish. The cause is the haze of air between the object and the eye.
BakingTransferring detail from one model to the texture of another. This is how a normal map is made: from the high poly to the low poly.
Blue hourTwilight when the sun is already well below the horizon: there is no direct sun and no sharp shadows, and the light is blue. The blue comes from ozone absorbing light, not from Rayleigh scattering.
Color scriptA strip of small paintings of a game’s or film’s key moments, made before the scenes themselves, that fixes the colors and mood of each moment. It lets a team agree on what “dusk” or “danger” looks like before anyone builds it.
Golden hourThe time shortly after sunrise and before sunset: the light is redder and softer, more of it comes from the sky, shadows are long, and the sky matches street lamps and windows in brightness.
High poly / low polyA detailed model of millions of polygons and a simple model for the game. The normal map is baked from the detailed one onto the simple one.
PaintoverPainting over a screenshot of a scene in progress to show how it should look: what to simplify, where light falls, what color the distance takes. Artists then build the scene toward the paintover.
RepoussoirAn object at the edge of the foreground (a tree, an arch, a figure) that frames the view, leads the eye into it and gives depth. From the French for “to push back.”
SilhouetteThe outline of an object filled with one color. A strong silhouette reads at once, even far away or in a glance; artists check shapes this way before adding detail.

Environment

2 terms
FloodplainThe flat floor of a valley along a river, which the river covers at high water: for an undisturbed river, usually once every year or two. A flood leaves silt, so the soil is fertile. That is good for meadows and fields, and bad for houses.
Wind animation, procedural windGrass and foliage sway without animation frames: a vertex shader shifts the vertices by a sine of time, with a phase taken from the position, multiplied by a mask. Noise that runs across the field adds gusts.

A tree is swayed as a hierarchy: trunk, branches and leaves, each at its own frequency around its own attachment points. Only the picture sees the shift: the collision stays put, and the mesh’s bounding box is enlarged. Wind, trunk, branches, leaves.

World and levels

127 terms
AffordanceA property of a thing that shows what you can do with it: a door handle says pull or push, a ladder says climb, a flat ledge says grab. The language of such promises stays the same across a game; a false promise is hidden or given a visible reason.
AI directorA system that watches the players and decides when to send enemies or items. The director of Left 4 Dead tracks how intense the game is for each survivor and brings threats in waves: build up, peak, fade, rest.
Angle of reposeThe steepest slope at which a heap of loose material stays put: about 34° for dry sand. Pile on more, and the extra slides down and makes the heap wider, not steeper.
Art passThe stage after the blockout, when artists replace gray shapes with finished art. It can still change the level, so the level keeps being playtested.
Auto materialA ground material that paints itself by rules instead of a brush: for example, rock where the slope is steep, snow above a height, grass elsewhere, with soft bands and noise. Hand painting is added on top where the rules can’t know the answer.
BacktrackingWalking back through parts of a level the player has already seen. It is dull when nothing has changed; loops and shortcuts remove it, and a changed space can make a return worth it.
Base levelThe lowest level to which a river can cut its bed, usually the lake or sea it flows into. When the river reaches it, it stops digging and starts to fill its valley with sediment.
Beat (level design)A small, self-contained chunk of a level: one fight, one scene, one puzzle, one view. Designers arrange beats the way music arranges its beats, with accents, rests and motifs that come back.
BiomeA kind of natural area with its own climate and plants, such as a pine forest or a grassland. In games, a biome is a set of rules that decides which plants, rocks and ground textures go where.
Blockout (greybox)A playable draft of a level or world made of simple shapes: gray boxes the size of houses, rocks and paths, without detail. On it you check scale, routes and travel time before anyone makes the art.
Blueprint (Unreal)Unreal’s visual scripting: logic built from nodes joined by wires instead of typed code. Each level has its own Level Blueprint, a graph of events for that level.
BreadcrumbsSmall things that lead to a goal one by one: coins, power-ups, lit spots, stepping stones. They go in after the first playtests, or they hide that the level itself is confusing.
Bubble diagramA quick sketch of a level with an oval for each area and lines or arrows for the connections. It settles what must be big and what connects to what, before any walls are drawn.
Building metricsSizes the team chooses for a game’s architecture: how wide an ordinary hallway is, how tall a door, how steep a staircase, how high cover stands. Unlike player metrics, they aren’t measured from the physics; they are decided to set the feel and are then kept the same across the levels.
CanopyThe closed crowns of the top layer: the roof of the forest. It intercepts most of the light, so under a dense canopy the lower layers grow poor.
Canopy gapA hole in the canopy where a tree or a big branch has fallen. Light reaches the ground, and grasses, shrubs and pioneers are the first to rise.
CausticsA light, running net on a shallow bottom: the bumps of the ripples work as small lenses and gather sunlight into bright lines. It fades with depth and in muddy water.
ChokepointA narrow passage or small area between two parts of a map that a few players can defend. Territories meet at chokepoints; multiplayer maps usually have one per lane, placed so that no single spot can watch them all.
Choreography (scripting)Scripting characters to act out a scene outside their normal behavior: where they walk and look, which animation they play, what they hold, how long they wait and where the camera points.
Cover (combat)Anything the player hides behind from enemy fire: a wall, a crate, a car. Combat games keep cover in a few fixed heights, such as high cover for standing and low cover for crouching, so that the player can tell at a glance what protects them.
Coyote timeA short time after the hero runs off an edge during which the jump button still works as if they were on the ground. It forgives a press that comes a moment too late; in Psychonauts 2 it lasts 0.2 s. Named after the cartoon coyote who hangs in the air for a moment after running off a cliff.
Critical pathThe main route through a level, the one the designer intends: it takes the player to the goal. Players leave it on purpose to look around, so the critical path has to read, not be the only way.
Cut and fillHow a road is made a level shelf on a slope: earth is cut away above (the cut) and piled up below (the fill). The edges are side slopes, usually 1 to 1.5, about 34°.
Data LayersGroups of actors in World Partition that are loaded and unloaded on command from Blueprint. That lets one place hold different states for quests, progress and events.
Density mapA map with a number from 0 to 1 at every point that says how densely one kind of object should grow there: 0 means none, 1 means as dense as its spacing allows. Rules build it from other maps, and a placement step turns it into exact spots.
Diegetic interfaceAn interface that exists inside the game world, so the character sees and handles it too: a paper map in the hero’s hands, a watch on the wrist, a light on a device, instead of markers drawn over the screen.
Differential erosionUneven wear of land made of rocks of different hardness. Soft rock wears away fast and lies in gentle slopes; hard rock lasts longer and stands as cliffs, ledges and the flat tops of mesas.
Digital elevation model, DEMA file of real ground heights measured from above, for example by a satellite: a grid of points, each with a height in meters. There are models of bare ground and models of the surface, which include treetops and roofs. Global data comes at a spacing of about 30 m.
DowncuttingA river cutting down into its bed and deepening its valley or canyon. It goes on until the river reaches its base level; after that the river spreads its load instead.
Drainage basinAll the land that drains rain to one point on a river. The edge of a drainage basin is the drainage divide: a line along the ridges, with water going to different rivers on either side of it.
Draw distance, view distanceHow far you can see in a game. It is not one number: small things are cut off at tens of meters, distant houses are replaced by simplified copies, the world loads in pieces around the player, and fog dims the far distance.

The ground in an engine is flat and there is no horizon, so the distance is closed off by terrain, air and draw distance. A good world hides its borders behind the crest of a hill and in haze. More.

Dry point siteA site for a settlement slightly higher than its surroundings, which floods less often: a mound in a floodplain, the edge of a valley. Water is close, and the flood doesn’t reach it.
EcotopeIn Horizon Zero Dawn, a kind of environment, such as a pine forest or a desert, described as a set of rules: which assets grow there and how densely, and also its colors, weather, effects, sound and wildlife.
Edit layersA stack of height and paint edits on top of a landscape’s base. A layer can be hidden, weakened, reordered or deleted without touching the rest. Roads and water edit the ground with their own layers and recompute them automatically.
Encounter (level design)A fight or other challenge in a level, built from the game’s usual enemies, weapons and cover, usually in several stages and with more than one way to win. In level design the word most often means a fight against computer-controlled enemies.
Environmental storytellingA story told without words: a level is built to report a past event or hint at it. It works at the scale of a single room: what happened here, to these people?
ErosionThe wearing away of land by water, wind and gravity. Terrain generators simulate it: water carves valleys and gullies, carries material down and drops it at the foot of slopes, which turns smooth shapes into believable land.
Fast travelA way to move instantly between places the player has already found, for example from one checkpoint to another, instead of walking. Without it, the layout of the world and its shortcuts decide how long every return takes.
Floor planeOne flat layer of a level, such as a street, a balcony level or a rooftop, with small height changes merged into it. Most maps keep to about three floor planes in any one area: a bottom, a middle and a top.
Flow accumulation, flow mapA map that counts, for every point of a terrain, how much land drains through it: each cell sends its water to its steepest lower neighbor, and the counts add up downhill. High values trace the streams, zero marks the ridges.
Flow mapA texture over the water that records in each pixel where and how fast the water flows: channel R is the speed along X, channel G the speed along Y, and 0.5 means zero. The material steers the ripples along it.
Foothold (combat)A strong spot just inside an arena, such as a block of cover by the entrance, that gives the player a reason to step in and a base to fight from. Without one, players tend to fight from the doorway.
Footprint (placement)How much room one placed object needs around it. Trees with a 6 m footprint stand at least 6 m apart; a placement pattern spaced by the footprint never puts two of them inside each other.
Forest edgeThe margin of a forest where it meets a meadow or a field. There is more light and wind there, so shrubs and saplings grow thickly, and the border is a strip, not a line.
Forest layer, stratumA layer of vegetation: tall trees (first size class), shorter trees (second size class), an understory of shrubs, grasses and dwarf shrubs, mosses. Each lower layer lives on the light that the layers above let through.
Gate (level design)Anything in a level that blocks the player’s way until something happens: a locked door, a gap too wide to jump, a guard, a barrier that drops after a fight. A hard gate must be cleared as intended; a soft gate only nudges, and a skilled player may get past it early.
Gravity (open world design)Nintendo’s way of leading players in Breath of the Wild: places that pay off, seen from afar, pull the player aside on the way to a goal. Each player feels a different pull, by what they want: explorers, those who want health, those who want weapons. Together the pulls lay loose lines of movement without markers.
Heat mapA map where color shows how often something happened in each place: how many players walked a path, stopped or died there. Designers use heat maps from playtests to see where players actually go.
HeightmapA grayscale image that stores a terrain: each pixel is the height of one point, from black for the lowest to white for the highest. The image itself holds values from 0 to 1; the width and height range in meters turn them into real ground.
Houdini, Houdini Digital Asset (HDA)A 3D program by SideFX built on node graphs, widely used for film effects. A tool made in it can be packed as a Houdini Digital Asset (HDA) and run inside a game editor through the Houdini Engine plug-in.
Hub and spokesA layout with a central area, the hub, and several branches, the spokes. The player explores the spokes one by one and returns to the hub between them, so the hub must change on each visit.
Hydraulic erosionErosion by running water. Rain gathers into streams that pick up rock where they are fast and drop it where they slow down, cutting gullies and valleys higher up and laying sediment lower down.
IterationThe loop of building, testing and changing that a level goes through many times. Each new version builds on what worked in the last one.
KillzoneAn open stretch of a map with no cover, between the ground one team holds and the ground of the other. Crossing it is risky, so it costs a team something, such as grenades for smoke, or it is not worth trying.
Landmark, point of interest (POI)A memorable shape or place that stands out from its surroundings and can be seen from afar and from different places. Players keep their bearings by it and walk toward it.
Landscape componentA square piece of landscape in Unreal with its own height texture, paint layers and collisions. It is divided into 1 or 2 × 2 sections; a section is the unit of detail and a draw call. Epic advises no more than 32 × 32 components.
Landscape, terrainThe ground in a game: a regular grid of vertices, each with one height taken from a height map. It is cheap to store, easy to edit and easy to simplify in the distance, but it cannot do overhangs, caves or sheer walls; those are made with meshes on top.
Lane (multiplayer map)One of a map’s main routes between the two sides. Most multiplayer maps have one to three lanes that clearly differ in length, cover and danger, so that choosing a lane is a real decision; switching lanes during a round is called a rotation.
Layout (level structure and plan)The structure of a level seen from above: what connects to what, the main path, the side paths, loops and dead ends. The word also means the drawing made from above to plan that structure before anything is built.
Level InstanceA set of objects saved as a template level and placed in the world as copies. Edit the template and all the copies change. For static buildings there is a packed version, Packed Level Blueprint.
Level scriptBehavior written for one level only: its objectives, triggers, doors, enemy arrivals and scenes. It is “softer” than the core code of the game, which all levels share.
Level streamingLoading and unloading levels while the game runs, so that not everything has to sit in memory. In Unreal a sublevel is loaded by a volume (Level Streaming Volume) or by the Load Stream Level command; large worlds are now split into pieces by World Partition.
Loading rangeThe radius around the player inside which the cells of the world are loaded. Memory grows as the square of the range, and the time margin for loading is roughly the range divided by the player’s speed.
Lock and keyA gate that stays shut until the player finds what opens it somewhere else. Both words are abstract: the lock can be a door, a ledge or a chasm, and the key an item, a new ability, a password or a story event.
LoopbackA path through a level that loops back on itself, so the last room opens onto a place near the start. The player moves forward through a planned order of rooms and still never walks back the same way.
Map balanceHow fair a multiplayer map is, and how fair it feels, in where each side can stand and move. A balanced map gives every strong spot a counter and a weakness, and gives each team close to half of the wins over many matches.
MassingThe sense of volume and weight that a level’s basic shapes give: heavy and thick or light and thin. In a blockout it answers the question “what kind of place is this?” before any detail exists.
Mental mapThe map of a place that a person holds in their head. According to Kevin Lynch, it is built from paths, edges, districts, nodes and landmarks. A world where all five work is memorable.
Metrics zoo (metrics playground)A test map that only the developers see, with the level’s typical pieces side by side: rooms, hallways, doors, stairs, ledges and gaps of stepped sizes. Designers walk and jump through it to measure what the hero can do, and walk it again after every change of the movement.
MetroidvaniaA kind of game named after Metroid and Castlevania: one connected world that opens up as the hero gains abilities, such as a double jump or rolling into a ball, which work as keys to places seen earlier.
Mission graphA diagram of a level with the rooms left out: each key, lock and goal is a point, and an arrow goes from one to another when the first is needed for the second. Points with no arrows between them give the player a choice; a single chain gives none.
Modular kitA set of pre-made pieces of architecture, such as walls, floors and doorways, sized to one grid and snapped together like Lego. Beginners are better off downloading a ready kit than making their own.
Motivated lightLight that has a believable source in the frame: a window, a lamp, a fire. The engine’s invisible lights are placed as though the light came from those; one fixture is often backed by several lights.
Node graphA chain of nodes, each doing one job and passing its result on. In Gaea the graph reads from left to right: a shape, then changes to it, then erosion, then export.
Non-destructive editingAn edit that is stored separately from the base and recomputed when the base changes. It can be switched off or redone, and nothing beneath it is damaged.
One File Per Actor (OFPA)An Unreal mode where each object of a level is stored in its own file instead of one shared file. This way many people edit one map without getting in each other’s way. It is on by default with World Partition.
PacingThe order and rhythm of events in a level: when the player fights, explores, solves or rests, and how intensity rises and falls over time. Good pacing alternates highs and lows, so that each peak is felt.
Patrol (stealth)The route a guard walks again and again. Its rhythm leaves windows, moments when a spot is not watched, that a stealth player learns and slips through. Where the player crosses a patrol and how lit the crossing is decide how long the windows are.
Pioneer speciesA fast-growing, light-loving plant that is the first to take over open ground after a fire, a clear-cut or a storm. In northern forests this is the birch.
Player metricsThe sizes a level is built around: how tall and wide the hero is, how high and far they jump, how wide a passage must be. A blockout checks them by walking through it as the hero.
PlaytestA trial session with real people: the designer watches in silence where the player gets lost or stuck and changes the level. It starts as early as a draft made of gray boxes.
Prefab, Level InstanceA group of objects saved as one whole: a house with furniture, a yard, a dock. You place copies around the world, and editing the original changes all of them.
Procedural Content Generation, PCGProcedural Content Generation: making game content by rules rather than by hand. In Unreal, the PCG framework is a node graph that places meshes and other objects from points, maps and splines.
Region, districtA part of an open world with a character of its own: the shape of the land, plants, color and light, what people do there. A region is remembered when several of these things change at once.
Road gradeThe rise divided by the horizontal distance covered, as a percentage: 6% is six meters up per hundred forward. 100% is a 45° slope, not a wall.
Route centre, nodal pointA place where routes meet: two valleys, two roads, two rivers, a crossing of a big river, a pass between hills. Cities grow here.
Sandbox (level)A level built as a place full of tools, people and routes, with a goal but no fixed way to reach it. The player is free to try their own plan, and the level is made to be played many times.
Saplings, advance regenerationYoung trees of the main species under the canopy. They wait for room to open up above, and under closed crowns they thin out and die.
Scale figureA block the size of the hero placed in a blockout, so every wall, door and room can be compared with the player’s body at a glance.
Sediment, depositsRock and soil that water has picked up and carried, from fine silt to boulders. Where the water drops it, it builds deposits: fans at the foot of slopes, flat valley floors, deltas.
Set pieceAn especially elaborate, memorable beat, such as a boss fight, a chase or a collapsing bridge. It is expensive, usually unskippable and heavily scripted. The word comes from film production.
Shape languageConsistent meanings of basic shapes in a game. According to David Shaver of Naughty Dog, round reads as safe, rectangular as stable and sharp or diagonal as dangerous, so shapes can gently steer the player.
ShorelineThe line where the ground stands exactly at the height of the water level is a contour line. On screen, it is the place where the ground pokes through the plane of the water.
Shortcut (level design)A passage that links two far parts of a level and can be opened only from one side, usually the far one: a one-way door, a ladder kicked down, an elevator switched on. It closes a loop and spares the player a long walk back.
SightlineA line along which one place in a level can be seen from another. Designers plan what the player sees from where, and in fights, along which lines players and enemies can see and shoot each other.
SiteWhat lies under a settlement: water, dry and level ground, shelter, defense, wood and stone for houses, soil. The site decides whether a settlement appears at all.
SituationHow a settlement connects to the rest of the world: roads, rivers, crossings, neighbors. The situation decides whether a village grows into a city.
SlopeHow steeply the ground rises: the angle of the slope in degrees. Scattering takes it from the normal of the ground: its vertical part is the cosine of the angle, 1 on flat ground, 0.87 at 30°, 0.5 at 60°.
Slope aspectThe compass direction a slope faces. In the northern hemisphere a south-facing slope is warmer and drier; a north-facing one is shady, snowier, and the forest on it is thicker.
Social stealthHiding by fitting in rather than by staying out of sight: wearing the right clothes, standing where that role belongs and behaving as people there expect, so that nobody looks twice.
SplineAn invisible curve that generates geometry along its path, such as a road, a river or a fence. Move a point of the curve and the geometry follows, so the shape can be changed at any time.
Spline meshA straight model that the engine bends along a curve: each vertex is moved to the spline point at the same fraction of the length. A long stretch stretches the pattern, and a tight turn turns the inner edge inside out.
Squint testSquint at the screen: everything blurs except the most contrasting things. What you still see through the squint is what the player notices first.
Streaming cell, grid cellA square of the world that is loaded and unloaded as a whole. In Unreal, World Partition cuts the world into them: in Epic’s example a cell is 256 m.
Streaming sourceThe point around which World Partition loads cells. By default it is the player; another source is placed, for example, at a teleport destination, to load it ahead of time.
Switchback, hairpinA zigzag of a road across a slope: the path is made longer to reduce the grade. A road is no shorter than the climb divided by the allowed grade. A sharp turn of the zigzag is a hairpin.
Symmetry (map)In level design, building one team’s half of a map and copying it, flipped or turned, for the other team, so that both sides get the same shapes and distances. It is the simplest way to make a map fair, but the halves need different art so that players can tell them apart.
Talus, screeAn apron of loose broken rock at the foot of a cliff or steep slope, also called scree. It builds up from pieces that fall from above and lies at about its angle of repose.
Thermal erosionIn terrain generators, the sliding of loose material down slopes that are steeper than a chosen angle, the talus angle. It softens cliffs and gully walls and builds talus at their foot. In nature, rock breaks loose as it heats, cools and freezes.
Transport capacityThe most rock that flowing water can carry. It grows with the amount of water and its speed, so it is high in a steep, full stream and low where the water spreads out and slows. Below it the water picks up rock; above it, it drops the extra.
TreelineThe elevation above which trees do not grow because it is too cold. In the mountains it lies where the average soil temperature over the warm season is about 6.5 °C.
Triangle ruleNintendo’s rule for shaping land in Breath of the Wild: hills, rocks and buildings that look like triangles from where the player stands. A triangle makes the player choose, over or around, and hides what is behind it until the player moves. Large ones are landmarks, medium ones hide the view, small ones set the tempo.
Vertical sliceA small piece of a game made to near-final quality, with real art and sound, to find out whether the game works when the answer depends on art and story rather than on space.
VerticalityHow it feels to move up and down in a level: climbing, dropping, seeing from above or from below. Height orients the player, changes who sees whom in a fight and decides which ways lead back.
Viability (vegetation)A score each plant species gives every spot of land: how well it would grow there, built from terrain data such as slope, shade or distance to water. Where species compete, the one with the highest viability wins; it can also pick the size of a tree.
Vision coneThe area in front of a game character in which they can see the player, usually drawn as a cone of a set angle and length. Games shorten it in shadow and add a delay before the character notices, so the player has a moment to hide.
VistaA deep view of a place ahead, seen from a spot along the path: the player gets a moment to look, take in where things are and choose where to go next.
Von Thünen modelA model by Johann von Thünen (1826): around a market on flat land, farming falls into rings. What spoils fast or is hard to haul goes closer; what can wait or gets there on its own goes farther. Terrain, rivers and roads bend the rings.
Voxel, voxel terrainA sample of a 3D grid, the 3D version of a pixel: a number stored at one point of a volume. Voxel terrain stores such numbers everywhere, for example the distance to the surface, so the ground can take any shape: caves, overhangs, arches, tunnels the player digs.
Water bodyWater in a game as one object with a shape and a level: a surface with a material, an invisible volume for swimming, and an edit of the ground for the bed. Move the body and everything moves at once.
WayfindingHow a player understands where they are and finds a route to where they want to go. The word comes from architecture: stations and airports are built so that people don’t get lost. The designer doesn’t lead the player on a string but gives them cues.
WeenieWalt Disney’s word for a large landmark, visible from afar, that pulls visitors toward it the way a sausage pulls dogs. In Disneyland one stands at the center of every themed area.
WeightmapA grayscale map over the ground for one paint layer: how much of that layer is at each point, from 0 to 1. The weights of shared layers add up to 1 at every point, so more rock means less grass. Unity calls it a splat map.
World PartitionStreaming a world in chunks in Unreal: the world lies on a grid of cells, and only the cells around the player are loaded into memory.
World unit, Unreal Unit (uu)What “1” means in an engine’s coordinates. In Unreal a unit is a centimeter; in Unity, Godot and Blender it is a meter. When a model moves between programs, the units are converted: a one-meter cube in Unreal is 100 units.

A mistake in units shows up as a model 100 times smaller or bigger and as objects that fall as if in slow motion: gravity in an engine is real. More.

WorldbuildingInventing a game’s world: terrain and climate, who lives where and why, what was here before. In games it serves the game: it explains from inside the world what the game needs. By The Level Design Book, story solves game problems.
Yellow paintBright markers in a level, such as yellow ladders, stripes on ledges or breakable crates, that show where to go and what can be used. A loud cue: it helps players who get stuck but annoys many others.