HOW THINGS WORK
How GPUs Work
David Luebke, NVIDIA Research Greg Humphreys, University of Virginia
Direct3D) to provide each triangle to the graphics pipeline one vertex at a time; the GPU assembles vertices into triangles as needed.
A GPU can specify each logical object in a scene in its own locally defined coordinate system, which is convenient for objects that are naturally deﬁned hierarchically. This convenience comes at a price: before rendering, the GPU must first transform all objects into a common coordinate system. To ensure that triangles aren’t warped or twisted into curved shapes, this transformation is limited to simple affine operations such as rotations, translations, scalings, and the like. As the “Homogeneous Coordinates” sidebar explains, by representing each vertex in homogeneous coordinates, the graphics system can perform the entire hierarchy of transformations simultaneously with a single matrixvector multiply. The need for efﬁcient hardware to perform ﬂoating-point vector arithmetic for millions of vertices each second has helped drive the GPU parallel-computing revolution. The output of this stage of the pipeline is a stream of triangles, all expressed in a common 3D coordinate system in which the viewer is located at the origin, and the direction of view is aligned with the z-axis.
GPUs have moved away from the traditional ﬁxed-function 3D graphics pipeline toward a ﬂexible general-purpose computational engine.
n the early 1990s, ubiquitous interactive 3D graphics was still the stuff of science ﬁction. By the end of the decade, nearly every new computer contained a graphics processing unit (GPU) dedicated to providing a high-performance, visually rich, interactive 3D experience. This dramatic shift was the inevitable consequence of consumer demand for videogames, advances in manufacturing technology, and the