Rendering is the process of turning a description of a scene, geometry, cameras, lights, materials, into the image on a screen. It happens in a fixed sequence of stages, and each stage has one clear job.

From scene description to image

The program builds a scene description and hands it to the graphics hardware. The central processor does the general work of the application, and the graphics processor does the drawing, because drawing is a job that benefits from doing many small tasks at once.

Vertex processing

The pipeline begins with the corners of the geometry, the vertices. Each vertex carries properties such as position, color, and texture coordinates, and the vertex stage transforms them from the scene's coordinates into the space the screen will use.

Rasterization

Rasterization converts shapes into the pixels they cover. The three-dimensional scene, now projected flat, is turned into a grid of fragments: candidate pixels with positions and interpolated properties taken from the nearby vertices.

Fragment shading

Each fragment is then shaded: given its final color based on lights, materials, and textures. This is where most of the visible character of an image comes from, and where real-time graphics spends much of its work.

Depth testing and blending

Before a fragment can be written to the screen, two checks apply. Depth testing compares how far each fragment is from the camera so that nearer surfaces hide farther ones. Blending combines fragments that are partly transparent with what is already behind them, which is how glass, fog, and soft edges are drawn.

Real-time versus offline rendering

Rendering divides into two families. Real-time rendering must produce a new frame in a fraction of a second so an interactive scene feels responsive, which means simplifying where necessary. Offline rendering has no such deadline and can spend minutes or hours per frame on the detail expected in finished film and animation. The pipeline is the same; the budgets are different.