In 3D computer graphics the terms graphics pipeline or rendering pipeline refers generally to the latest method of rasterization rendering which is supported by graphics hardware. On the input side of the pipeline is fed a three-dimensional representation hidden wiki link 2020 of a scene for instance a battle scene of a computer game. This three-dimensional input is then processed so that the output is a 2D raster image of the three-dimensional input. OpenGL and Direct3D are two well known rendering models.
All vertices and fragments are independent. This makes the graphics pipeline well suited to the rendering process. It allows the GPU to function as a stream processor. Further all stages of the pipeline can be used at the same time for different vertices or fragments. Graphics processors can due to the independence of the vertices and fragments make use of parallel processing units to process multiple vertices or fragments in a single stage of the pipeline at the same time (1).
The Graphics Pipeline
The typical pipeline has the following stages:
- Bus interface or front end – used to send and receive data and commands.
- Vertex processing – converts each vertex to a 2D screen position.
- Clipping – removes parts of the image not visible on the screen such the back of buildings.
- Primitive assembly, triangle setup – vertices are collected and converted into triangles.
- Rasterization – the triangles are filled with pixels known as fragments. Fragments may end up in the frame buffer if there is change or if not hidden.
- Occlusion – pixels that are hidden are removed.
- Parameter interpolation – the values for each pixel that were rasterized are computed, based on colour, fog and texture.
- Pixel shader – texture and final colours are added to the fragments.
- Pixel engine – mathematically combine the final colour, its coverage and transparency. Output is a depth value for the pixel.
- Frame buffer controller – interfaces to the memory used to hold the actual pixel values as displayed on screen (2).