3D Rendering Pipeline
Each of these stages are pipelines in themselves. The slowest stage determine the rendering speed.
Application
- Driven by the software and so is implemented in software.
- May contain: collision detections, animations, keyboard input, morphing, etc.
- At the end of this stage, the geometry to be rendered is
fed to the next stage.
Geometry
- Implemented in software or hardware depending on architecture.
- Responsible for the majority of per-polygon and per-vertex operations.
- Deals with: projections, transforms, lighting, etc.
- Computes what is to be drawn, how things are to be drawn, and where things are to be drawn.
Rasterizer
- Assigns correct colors to the pixels, a process referred to as rasterization or scan conversion.
- Information for each pixel is stored in a color buffer.
- For high permformance, this stage must be implemented in hardware.
- Double buffering is generally used using a front and back buffer.
- A Z-buffer (or depth buffer) is used to determine visibility.
- Other buffers may be used to affect the color: alpha channel stores opacity values, stencil buffer, etc
- A frame buffer may refer to all the buffers together or may just refer to the color and z-buffer together.
- More recently, an accumulation buffer is used to average images such as for anti-aliasing, or for creating motion blur.