Plain definitions of the terms this book teaches, from A* to the z-buffer. The chapter in parentheses is where each one is taught. Where there are two, the term is met in the first and taught in full in the second, or it means something different in each. A term in bold inside a definition is defined here too.
A* (Ch23) — A search for the cheapest path, which is Dijkstra's algorithm with an estimate of the cost still to go. It always takes next the cell with the least cost so far, g, plus its heuristic, h. So it heads for the goal, and usually explores far fewer cells.
AABB (Ch11) — An axis-aligned bounding box.
Acceleration (Ch7) — The rate at which velocity changes, in pixels a second, each second. Each frame, it changes the velocity by acc × dt.
Address mode (Ch24) — What a texture does with texture coordinates outside 0 to 1. Clamp repeats its edge texels, and wrap repeats the whole texture, which is tiling.
Admissible (Ch23) — Said of a heuristic that never overestimates the cost still to go. With one, A* finds the best path.
Affine (Ch24, 34) — Blended evenly across the picture, as SDL blends a triangle's texture coordinates. On a surface seen at a slant, that's wrong, and perspective-correct blending puts it right.
Alpha (Ch15, 20) — The fourth number of a color: its opacity, from 0 for invisible to 255 for solid. With blending on, a color with less than 255 lets what's beneath it show through. In a fixed timestep, it's the share of a step left over in the accumulator, used to draw between the last two steps.
Ambient light (Ch28) — A little light added everywhere, so that a face turned away from the light isn't pure black.
Anchors (Ch14) — The first and last control points of a Bezier curve, which it starts and ends on.
Angle sum identities (Ch6) — The two formulas for the cosine and the sine of a sum of two angles. They show why the rotation formula works.
Arc cosine (Ch4) — The function that undoes the cosine, std::acos. It turns a dot product of unit vectors back into the angle between them.
Arc-length table (Ch14) — A list of the distance along a curve at many values of t. Looking a distance up in it gives the t to use, so that a mover can go along the curve at an even speed.
Arrive (Ch9) — Seek with brakes. It slows down inside a radius bigger than its braking distance, so that it stops on the target.
Aspect (Ch30) — The window's width over its height. A projection uses it, so that a square is drawn square.
Atlas (Ch24) — One texture that holds several images, its cells, side by side. Texture coordinates pick a cell out of it.
Axis (Ch16) — In the separating axis theorem, a direction to cast two shapes' shadows onto. If their shadows don't overlap on some axis, the shapes don't touch.
Axis-aligned bounding box (Ch11) — A rectangle whose sides line up with the x and y axes, or AABB. It's the cheapest shape to test, and it's stored as its corners or as its center and half-size.
Back-face culling (Ch33) — Skipping the faces of a closed mesh that face away from the eye, about half of them. A face is drawn only when its normal points toward the eye.
Barycentric weights (Ch33) — Three numbers that say where a point is in a triangle, one for each corner. Each is the share of the triangle's area in the small triangle opposite its corner, so they add up to 1. They blend anything the corners carry, such as a depth.
Bernstein form (Ch14) — A Bezier curve written as one formula: each control point times a weight that depends on t. The weights always add up to 1.
Bezier curve (Ch14) — A curve made by lerps of lerps between control points. A linear one has two points, a quadratic three and a cubic four. It starts and ends on its anchors, and bends toward its handles without reaching them.
Bilinear (Ch21) — Blended in two directions: across a square's top and bottom edges, and then between them. Value noise blends its four corners this way.
Binary search (Ch14) — Finding a value in a sorted list by halving the part that could hold it, again and again. The arc-length table uses std::lower_bound for it.
Bleeding (Ch24) — A neighbor's colors seeping into the edge of an image in an atlas, when linear sampling blends texels across the border between them.
Bounding box (Ch11) — The smallest axis-aligned box that holds a whole shape.
Braking distance (Ch9) — How far an agent needs to stop from a speed v with a steering limit a: v² / (2 × a).
Breadth-first search (Ch22) — A search that explores cells in the order it reaches them, from a queue, so it spreads out evenly in rings. It finds the path of fewest steps.
Broad phase (Ch19) — The quick first pass of collision detection, which finds the pairs that might touch. The narrow phase then tests only those.
Capsule (Ch17) — The shape of every point within a distance of a segment: a rectangle with round ends. A circle swept along a straight line covers one.
Catmull-Rom spline (Ch14) — A smooth curve that passes through every one of a list of waypoints. Each piece between two waypoints is a cubic Bezier, with handles made from the neighbors.
Cell (Ch19, 24) — A square of a grid, in which the objects whose centers are inside it are kept. In an atlas, a cell is one of its images.
Chaotic (Ch20) — Said of a system in which a tiny difference grows, until the outcome is completely different. A pile of balls is chaotic.
Chebyshev distance (Ch23) — The larger of dx and dy. It's the right heuristic for steps in eight directions that all cost the same.
Clamp (Ch13, 24) — To hold a value to a range, raising it to the bottom or lowering it to the top. As an address mode, it repeats a texture's edge.
Clip space (Ch30) — Where the projection matrix leaves a point, with four coordinates, before the divide by w. Clipping is done here, which is why it's called that.
Closed (Ch23) — Said of a cell that has come out of the search's queue and been explored. With a consistent heuristic, its cost is final.
Closest point (Ch13) — The point of a shape nearest to a given point. For a solid shape, a point inside is its own closest point. For a boundary, a line around nothing, it's on the line.
Closing speed (Ch20) — How fast two bodies move toward each other along the line between them, the normal. A collision changes only that part of their velocities.
Coefficient of friction (Ch10) — The number μ, which says how hard friction can push back: up to μ times how hard the surfaces press together.
Coherence (Ch21) — In noise, the property that nearby points have nearby values. White noise has none.
Collision detection (Ch15) — Finding whether two things touch, and for a response, which way is out and how far.
Collision response (Ch18) — What's done once a collision is found: pushing the objects apart, and changing their velocities, so that they slide or bounce.
Concave (Ch11) — Said of a polygon with at least one dent, where a straight line between two points inside it can leave the shape.
Conjugate (Ch35) — A quaternion with its axis reversed, written q*. It undoes the quaternion's turn, and its matrix is the transpose of the quaternion's.
Conservation of momentum (Ch20) — The rule that a collision between two bodies doesn't change their total momentum. What one gains, the other loses.
Conservative advancement (Ch17) — Moving two shapes on by a time short enough that the gap between them can't close within it, however they move and turn, again and again, until they touch. It finds the time of impact when no formula does.
Consistent (Ch23) — Said of a heuristic that never drops by more than a step costs: h(a) <= cost(a, b) + h(b). With one, a cell's cost is final when it's closed. Every consistent heuristic is admissible.
Convex (Ch11) — Said of a shape with no dents, where a straight line between any two points inside it stays inside. Many tests, such as the separating axis theorem, need convex shapes.
Convex hull (Ch14) — The shape a rubber band would make, stretched around a set of points. A Bezier curve stays inside its control points' convex hull.
Cosine (Ch4) — For an angle, the x of the point at that angle on a circle of radius 1. The dot product of two vectors is their lengths times the cosine of the angle between them.
Cross product (Ch4, 28) — In 2D, the single number ax by - ay bx, whose sign says which side of a line a point is on. In 3D, a vector at right angles to both of its inputs, which gives a triangle's normal. Its size is the area of the parallelogram the two vectors make.
Crossing count (Ch15) — A test of whether a point is inside any polygon. It counts how many edges a ray from the point crosses, and an odd count means inside.
Damping (Ch20) — A force that pushes against a body's velocity, so that a spring's swings die away.
De Casteljau's algorithm (Ch14) — Finding a point on a Bezier curve by lerping between its control points, then between those lerps, until one point is left.
Dead zone (Ch27) — A box around the window's middle, inside which a target can move without the following camera moving at all.
Degenerate (Ch11) — Said of a shape that has collapsed into something smaller, such as a segment whose two ends are the same point.
Delta time (Ch1) — The time the last frame took, in seconds, called dt. Scaling movement by it makes a demo run at the same speed at any frame rate.
Depth (Ch18) — How far two overlapping shapes reach into each other. With the normal, it says how far to push them apart.
Desired velocity (Ch9) — The velocity a steering agent would like to have right now. The steering force turns the agent's velocity toward it.
Determinant (Ch26) — For a 2 by 2 block, ad - bc. It's how much the block scales areas, and a negative one means the block also flips. A block with a determinant of 0 can't be undone.
Dijkstra's algorithm (Ch22) — A search that always explores the cheapest cell to reach so far, from a priority queue. It finds the cheapest path when steps have different costs.
Discriminant (Ch17) — The part of the quadratic formula under the square root. Below 0, there's no answer, so a ray misses a circle.
Displacement (Ch2) — A vector that's a movement or an offset, from wherever it starts.
Distribution (Ch21) — The part of C++'s random numbers that shapes a generator's raw numbers into what's asked for, such as floats in a range.
Dolly zoom (Ch30) — Moving the camera while changing its field of view, so that a subject stays the same size while the background stretches or shrinks.
Dot product (Ch4) — The single number ax bx + ay by, which is also the two lengths times the cosine of the angle between them. It says how much two vectors point the same way.
Drag (Ch7) — A loss that takes a share of an object's velocity away each second. It gives the object a top speed.
Easing (Ch8) — Bending the fraction of a blend, so that a move starts or ends gently. Ease-in starts slowly, ease-out ends slowly, and ease-in-out does both.
Edge normals (Ch16) — The directions at right angles to a polygon's edges. For two convex polygons, they're the only axes the separating axis theorem needs to try.
Epsilon (Ch5) — A small tolerance. Two floats closer than epsilon count as equal, since rounding means they're rarely exactly equal.
Euclidean distance (Ch23) — The straight-line distance, √(dx² + dy²). No route can be shorter, so as a heuristic, it never overestimates.
Euler angles (Ch29) — An orientation as three turns in a row, about three axes: a yaw, a pitch and a roll. At one middle angle, they suffer gimbal lock.
Euler integration (Ch7) — Following motion by small steps: the velocity times dt added to the position each frame. Semi-implicit Euler changes the velocity first, and then moves with it, which is steadier than explicit Euler, which moves first.
Evade (Ch9) — Fleeing from where a threat will be, rather than from where it is.
Extrapolation (Ch8) — A lerp with a fraction below 0 or above 1, which goes past its ends.
Eye (Ch31) — The camera's position in the world.
Fan (Ch33) — A polygon cut into triangles that all share its first corner.
Fixed timestep (Ch20) — Stepping physics by the same short time, as many times as real time asks for, rather than by each frame's dt. It makes the physics the same at any frame rate.
Flee (Ch9) — Seek turned around: the desired velocity points straight away from the threat.
Flow field (Ch21) — A direction for every point, which things placed in it drift along, like leaves on a stream.
Foot of the perpendicular (Ch4, 12) — The point of a line nearest to a given point, where a line at right angles from the point meets it.
Footprint (Ch27) — The part of the world a camera shows on the window.
Force (Ch20) — A push that changes a body's velocity gradually, through the acceleration it gives: the force over the mass.
Force accumulator (Ch20) — A body's total of the forces on it, which each force adds to during a step, and which is cleared after.
Fractional Brownian motion (Ch21) — Noise made of octaves added together, each with twice the frequency and half the amplitude of the one before. It's the standard recipe for natural-looking noise.
Frame (Ch1) — One trip around the game loop, and the one complete picture it makes.
Free function (Ch2) — A function that isn't a member of a struct or class. A Vec2 needs one for a number times a vector, such as 2 × v.
Front (Ch28) — The side of a triangle its normal points out of. Seen from the front, its corners run counterclockwise.
Frustum (Ch30) — A pyramid with its top cut off. A perspective camera sees the frustum between its near and far planes.
Function pointer (Ch8) — A variable that holds the address of a function, so that the function can be called through it.
Game loop (Ch1) — The cycle every game repeats until it ends: measure the time, handle the input, update, and draw.
Gamma-encoded (Ch34) — Stored as numbers that grow more slowly than the light they stand for, which spends more of a color's 256 levels on dark shades.
Generator (Ch21) — The part of C++'s random numbers that makes raw random numbers, such as std::mt19937. A seed decides its whole sequence.
Gimbal lock (Ch29) — The loss of one direction of turning when two of the three Euler angles' turns line up, at one value of the middle angle.
Gradient noise (Ch21) — Ken Perlin's kind of noise, which blends slopes at the grid's corners rather than values. Its hills and valleys don't sit on the grid.
Graph (Ch22) — A set of nodes, joined by edges. A grid is a graph whose nodes are cells, and whose edges join neighbors.
Half-angle (Ch4) — The angle from a cone's middle to its edge, such as half of a field of view.
Half-life (Ch8) — The time it takes a gap to halve, when a follow closes a share of it every frame.
Half-open (Ch15) — Said of a range that includes its start but not its end. The crossing count's edges use one, so that a corner on the ray is counted once, and an edge along it never.
Half-size (Ch11) — The distance from a box's center to each of its sides, in x and in y.
Handedness (Ch28) — Which way a 3D system's z axis points, once x and y are chosen. This book's is right-handed.
Handles (Ch14) — A cubic Bezier curve's middle two control points, which it bends toward without reaching.
Hash (Ch21) — A function that turns its inputs straight into a number that looks random. Noise uses one to give each grid corner its value.
Heuristic (Ch23) — An estimate of the cost from a cell to the goal, worked out from their positions alone.
Hidden surface removal (Ch33) — Making sure that where surfaces overlap on the screen, the nearest one is seen.
Homogeneous coordinates (Ch26) — Coordinates with an extra one, a 1 for a point and a 0 for a direction. They let a matrix move a point, as well as turn and scale it.
Hooke's law (Ch20) — A spring pulls with its stiffness times its stretch.
Identity (Ch26) — The matrix with ones down its diagonal and zeros everywhere else, which changes nothing.
Implicit form (Ch12) — A line described by a test that its points pass: n · (P - A) = 0.
Impulse (Ch20) — A push that changes a body's momentum in an instant. A collision's impulse changes each body's velocity by its size over the body's mass.
Indices (Ch24) — A list that says which three vertices make each triangle, so that triangles can share corners.
Integration (Ch7) — Following something that changes all the time, by adding up many small steps.
Interpolation (Ch8) — Finding the values partway between two others.
Invariants (Ch11) — Facts about a type's data that must always be true, for the code that uses it to work. A box's min must never be to the right of its max, and a ray's direction must be 1 long.
Inverse (Ch25, 26) — The transform that undoes another, with its steps undone in reverse order. A matrix times its inverse is the identity.
Inverse lerp (Ch8) — The fraction of the way from a to b that a value is: (v - a) / (b - a).
Jitter (Ch20) — Bodies trembling in a pile, never coming to rest.
Kinetic energy (Ch20) — Half a body's mass times the square of its speed. A perfectly bouncy collision keeps the total, and a dead one loses as much as it can.
Lambda (Ch22) — A small function with no name, written where it's used, such as a test for std::count_if or a comparison for a sort.
Lambert's law (Ch28) — A surface's brightness is the cosine of the angle between its normal and the direction to the light: their dot product, held at 0 or more.
Law of cosines (Ch4) — Pythagoras for a triangle with any angle. It's where the dot product's cosine comes from.
Leaf (Ch19) — A box of a quadtree that hasn't split, and holds objects.
Length (Ch3) — How long a vector's arrow is, √(x² + y²), from Pythagoras. It's also called its magnitude.
Lerp (Ch8) — Linear interpolation: the value a fraction t of the way from a to b, a + (b - a) × t.
Local (Ch6, 25) — Measured from a shape's own center, or in its parent's space, rather than in the world.
Local control (Ch14) — The property that moving one waypoint of a spline changes only the curve near it.
Look-at (Ch31) — The recipe that builds a camera's view from an eye, a target and an up hint.
Manhattan distance (Ch23) — dx + dy. It's exact for steps in four directions on an open grid.
Matrix (Ch6, 26) — A grid of numbers that is a transform. Applying it to a point is a dot product for each row, and multiplying two matrices makes one transform that does both.
Mesh (Ch29, 32) — A list of corners and a list of the faces that join them.
Midpoint (Ch2) — The point halfway between two positions, P + (Q - P) / 2, which is (P + Q) / 2. Adding two positions means nothing on its own, but halved, the sum is the midpoint.
Minimum translation vector (Ch16) — The shortest push that parts two overlapping shapes, or MTV: the axis of least overlap, times that overlap.
Mipmap (Ch24) — A chain of copies of a texture, each half the size of the one before, so that a small drawing samples a small copy.
Model matrix (Ch29) — The matrix that places an object in the world: a scale, a turn and a move.
Modulo bias (Ch21) — The unevenness of a random number taken modulo n, when n doesn't divide the generator's range. A distribution avoids it.
Momentum (Ch7, 20) — A body's mass times its velocity. An object keeps its momentum until a force changes it.
MVP (Ch32) — The model, view and projection matrices multiplied into one, P V M, which takes a corner straight to clip space.
NaN (Ch3) — Not a number: what a float becomes after 0 divided by 0. It spreads through every sum it touches.
Narrow phase (Ch19) — The exact test for one pair of objects, after the broad phase has found the pairs worth testing.
Navigation mesh (Ch23) — A floor cut into convex polygons, with an edge wherever two share a side. Many 3D games find their paths on one.
Near plane (Ch30) — The nearest distance a camera sees, as the far plane is the farthest. Between them, depth is kept.
Noise (Ch21) — Smooth randomness, in which nearby places have nearby values.
Normal (Ch10, 28) — The unit vector that points straight out of a surface. In 3D, a triangle's normal is the cross product of two of its edges, normalized.
Normalize (Ch3) — To scale a vector to a length of exactly 1, keeping its direction.
Normalized device coordinates (Ch30) — The cube from -1 to 1 in x, y and z that the perspective divide leaves everything visible in, or NDC.
O(n²) (Ch19) — Said of work that grows as the square of what it's given, such as testing every pair. Ten times the objects is a hundred times the work.
Octaves (Ch21) — Layers of noise, each finer than the last, added together.
Octile distance (Ch23) — The larger of dx and dy, plus the smaller times √2 - 1. It's exact for steps in eight directions, where a diagonal costs √2.
Open (Ch23) — Said of a cell waiting in the search's queue, with a cost that may still improve.
Operator overloading (Ch2) — Giving an operator, such as +, a meaning for a type of your own, so that two vectors can be added with a + b.
Oriented bounding box (Ch11) — A box that can tilt, or OBB: a center, a half-size and a turn.
Origin (Ch1) — The point (0, 0). On the window, it's the top-left corner.
Orthographic (Ch28, 30) — Said of a projection that draws parallel lines as parallel, so that distance doesn't change size.
Painter's algorithm (Ch33) — Drawing triangles from the farthest to the nearest, so that the nearer ones paint over the rest. It fails for triangles that cross.
Parametric form (Ch12) — A line or a ray as a start plus a direction times a number, t, which picks a point on it.
Pathfinding (Ch22) — Finding a route from one place to another around obstacles.
Perspective (Ch30) — Said of a projection that makes distant things smaller, by dividing by their distance.
Perspective divide (Ch30) — Dividing a point's x, y and z by its w after the projection, which is where distant things get smaller.
Perspective-correct (Ch34) — Blended over w, and then divided, so that texture coordinates come out right on a surface seen at a slant.
Ping-pong (Ch8) — A fraction that runs from 0 to 1 and back again, over and over.
Pitch (Ch24, 31) — In a texture, the bytes from the start of one row to the next. In 3D, the turn that tips a view up and down.
Pivot (Ch6) — The point that something rotates about.
Pixel format (Ch24) — What each byte of a texture's pixels means. In RGBA32, the four bytes are red, green, blue and alpha.
Place (Ch25) — The position part of a transform. With the turn and the scale, it makes the whole transform.
Plane (Ch28) — A flat surface that goes on forever, described by a point and a normal.
Polygon (Ch11) — A shape bounded by straight edges, stored as its corners in order around its edge.
Position (Ch2) — A vector that's a place: the arrow from the origin out to it.
Precedence (Ch2) — Which operator is done first. An overloaded operator keeps its built-in precedence.
Priority queue (Ch22) — A queue that's ordered by a number rather than by arrival, so that the smallest comes out first.
Projection (Ch4, 30) — In 2D, the length of one vector's shadow along another, from the dot product. In 3D, the step that takes a scene from space onto a flat picture.
Projection matrix (Ch30, 32) — The matrix that takes view space to clip space.
Pursue (Ch9) — Seeking where a target will be, rather than where it is.
Quadtree (Ch19) — A box that splits into four smaller boxes wherever it holds too many objects, so that its cells fit the crowd.
Quaternion (Ch35) — Four numbers that hold a turn about one axis: the cosine of half the angle, and the axis times its sine. It turns without gimbal lock, and blends with slerp.
Queue (Ch22) — A line in which what comes in first goes out first.
Radian (Ch5) — The angle that walks a distance of one radius around a circle. A full turn is 2π radians, and C++'s trigonometry works in radians.
Ray (Ch11) — A segment that never stops: a start and a direction.
Ray cast (Ch12) — Following a ray to the first thing it hits.
Relative velocity (Ch17) — One object's velocity as another sees it: the difference between their velocities. It turns two moving objects into one moving past one still.
Remap (Ch8) — Turning a value in one range into the matching value in another, by an inverse lerp and then a lerp.
Response time (Ch9) — The time a steering agent allows itself to reach the desired velocity. It never quite gets there: after one response time, about two thirds of the gap has gone.
Rest speed (Ch10) — The speed below which a bounce stops, so that a ball comes to rest rather than bouncing forever.
Restitution (Ch10) — A number from 0 to 1 that says how much of the speed across a surface a bounce keeps.
Right-handed (Ch28) — Said of a 3D system with x right, y up and z toward you. Curl your right hand's fingers from x to y, and your thumb points along z.
Roll (Ch29, 35) — The turn about the z axis, the way an object faces. With the yaw and the pitch, it makes the Euler angles.
Rotation formula (Ch6) — The formula that turns a point by an angle about the origin: (x cos θ - y sin θ, x sin θ + y cos θ).
Sampling (Ch24) — Choosing a color for a pixel from a texture. Nearest sampling takes the nearest texel, and linear sampling blends the four around the point.
Scale (Ch25) — The size part of a transform. A uniform scale multiplies x and y by the same number.
Scancode (Ch7) — A name for a key by its place on the keyboard, not by its letter. The keyboard state is indexed by scancodes.
Scanline (Ch33) — A way of filling a triangle row by row, between its edges.
Scene graph (Ch25) — A tree of transforms, in which each child is placed in its parent's space.
Screen space (Ch1) — Positions on the window, in pixels.
Seed (Ch21) — The number that starts a generator, and decides its whole sequence. The same seed always gives the same numbers.
Seek (Ch9) — Heading straight at a target, at full speed.
Segment (Ch11) — A straight piece of a line, with two ends.
Separating axis theorem (Ch16) — Two convex shapes don't touch if, and only if, their shadows don't overlap on some axis. It's called SAT for short.
Shear (Ch25) — A slant that turns squares into parallelograms, whose corners aren't right angles. A turn inside an uneven scale makes one.
Shimmering (Ch24) — The flicker of fine texture detail as a shape moves, when it's drawn smaller than the texture.
Signed angle (Ch5) — The angle from one vector to another, with a sign that says which way to turn: std::atan2 of their cross and dot products.
Signed distance (Ch12) — A point's distance from a line, with a sign that says which side it's on.
Similar (Ch30) — Said of triangles with the same angles, whose sides are in proportion.
Sine (Ch4) — For an angle, the y of the point at that angle on a circle of radius 1.
Sink (Ch20) — Bodies in a pile squashing into each other, until the pile is too low.
Skeleton (Ch1) — The small program every demo starts from: a window, a game loop timed by delta time, input and text. Appendix B prints it.
Slab method (Ch17) — A ray's test against an axis-aligned box. It finds where the ray enters and leaves the box's x slab and its y slab, and the ray hits when the two times overlap.
Slerp (Ch35) — Spherical linear interpolation: the blend between two quaternions along the arc between them, at an even pace.
Slope (Ch8) — How steep a curve is: how fast its value changes as t changes.
Slope-intercept form (Ch12) — A line as y = mx + b. It can't describe a vertical line, which is why the book uses the other forms.
Smoothing (Ch23) — Straightening a path on a grid afterward. From each cell, it goes straight to the furthest cell of the path in sight.
Smoothstep (Ch8) — The ease 3t² - 2t³, which starts slowly, speeds up, and slows down again.
Spatial hash (Ch19) — A grid that keeps only the cells that hold something, in a hash map, keyed by each cell's column and row.
Spatial partitioning (Ch19) — Sorting objects by where they are, so that each is tested only against the few near it.
Speed (Ch7) — The length of a velocity, in pixels a second.
Spiral of death (Ch20) — A fixed timestep falling behind: each frame needs more steps, which make the frame slower, which needs more steps.
Steering behaviors (Ch9) — Small rules that let an agent choose where it wants to go, and get there believably. Each picks a desired velocity, and steers toward it with a steering force.
Steering force (Ch9) — The acceleration a steering behavior gives: the change from the agent's velocity to the desired one, over the response time.
Swept test (Ch17) — A collision test along an object's whole movement in a frame, rather than at its end. It stops fast objects tunneling.
Tangent (Ch5) — For an angle, the sine over the cosine.
Terminal velocity (Ch10) — The speed at which drag balances gravity, so that a falling object stops speeding up.
Texel (Ch24) — One dot of a texture, short for texture element.
Tiling (Ch24) — One small texture repeated to cover a large shape.
Tip to tail (Ch2) — How vectors add: put the second's tail at the first's tip, and the sum runs from the first's tail to the second's tip.
Top speed (Ch7) — The speed at which drag takes away as much as the thrust adds, so that the speed stops growing.
Transpose (Ch29, 31) — A matrix with its rows and columns swapped. A turn's inverse is its transpose.
Tunneling (Ch17) — A fast object passing through a thin wall between two frames, without ever overlapping it.
Turn (Ch25) — The rotation part of a transform.
Unary minus (Ch2) — The operator - with one operand: -v points the opposite way, with the same length.
Unit vector (Ch3) — A vector of length 1, which stands for a direction alone.
Up hint (Ch31) — The direction look-at is told is roughly up. It builds the camera's true up from it.
UV coordinates (Ch24) — A texture's coordinates: u across, from 0 at the left to 1 at the right, and v down, from 0 at the top to 1 at the bottom.
Vector (Ch2) — A pair of numbers, or a trio in 3D, with arithmetic of its own. It can be a position, a displacement, a velocity or a direction.
Velocity (Ch7) — The rate at which position changes, as a vector: a speed and a direction.
Vertices (Ch24) — The corners of the triangles a shape is drawn with, each with a position, a color and a texture coordinate.
View (Ch27, 31) — The transform that draws the world as the camera sees it: the camera's placement undone.
View space (Ch30) — The world as the camera sees it, with the eye at the origin, looking down -z.
Viewport transform (Ch30) — The last step of drawing, which stretches NDC's square across the window, in pixels.
Vsync (Ch1) — Waiting for the screen's refresh before showing each frame, so that the game draws one frame for each picture the screen shows.
Wander (Ch9) — Steering with no target, by a direction that drifts a little at random.
Weighted average (Ch14) — A sum of points times weights that are never negative and add up to 1. It always lies inside the points' convex hull.
White noise (Ch21) — Random values with no relation between neighbors, like a television's static.
Winding (Ch4, 28) — The way a triangle turns as you go around its corners in order: clockwise or counterclockwise.
Winding number (Ch15) — How many times a polygon's edge winds around a point. It's 0 outside, and not 0 inside.
World space (Ch1) — Positions in the game's world, which don't change when the camera moves.
World transform (Ch25) — An object's place, turn and scale in the world, from its parent's world transform and its own local one.
Wrap (Ch5) — To take whole turns away from an angle, until it's between -π and π.
Yaw (Ch29, 31) — The turn about the vertical axis. With the pitch and the roll, it makes the Euler angles.
Z-buffer (Ch33) — A depth for every pixel, so that a pixel is drawn only when it's nearer than what's there already. It lets the nearest surface win each pixel on its own.
Z-fighting (Ch30) — Two surfaces at nearly the same depth flickering through each other, when depth's precision runs out.
