Graphics Pipeline

This notebook explains the concept of a simple graphics pipeline which is used in computer graphics.

Farhad Kamangar 2017

Graphics Pipeline

Graphics pipeline is a conceptual model which is used in computer graphics systems to describe a series of steps which needs to be performed to display a 3-dimensional scene on a 2-dimensional screen.

Since computer graphics packages depend on different hardware and software systems, there is no universal graphics pipeline. for example the graphics pipelines for Direct3D and OpenGL are different from each other. Some of the steps in a graphics pipeline are implemented in hardware to accelerate the rendering process.

A graphics pipeline usually has three main components as shown below.

Application Component

Typically the application component is where the geometric primitives are defined. These primitives include points, lines, polygons, .... The application component is also responsible to read input files, and interact with user.

Geometry Component (Stage)

As the name implies, the geometry stage is responsible for most of the operations on the geometric primitives such as vertices and polygons. The geometry stage itself includes multiple sub-stages as shown below:

  • Model coordinates This coordinate system is the object space where each object has its own coordinate system.
  • World Coordinates This is where objects are located in the scene. This coordinate system is common to all the objects in the scene.
  • View Coordinates This is the camera coordinate system which is derived from the location and direction of the camera.
  • Normalized Coordinates This is the normalized coordinate system which depends on the view volume.
  • Device Coordinates This is the screen coordinate system.

Rasterization Component

In the rasterization stage, the primitives are converted to fragments. Each fragment corresponds to a pixel on the display device. The color and illumination of the pixels are finalized in this stage. The z-buffer is usually used in this stage to determine the visibility of the fragments. pixels to be displayed on the screen.