Graphics Pipeline
- Definition
- 3D scenes are rendered by specialized graphics card hardware routines
How does it work?
As an application programmer the details of the graphics card are abstracted away by a graphics API. The best known of these are DirectX and OpenGL. Use these to write software that's independent of the actual card the scene is displayed on.
3D animations would require an incredible amount of CPU processing power, in stead they are performed by a specialized piece of hardware called the GPU (graphics programming unit). The GPU has its own memory, called VRAM.
Some resources don't change and need to be uploaded to the GPU once, at the beginning of the game:
- Vertex buffers
- Index buffers
- Textures
- Shader programs
- Render targets
- Constant buffers
- Structured buffers
For every following frame, the game calculates the new game state, including the positions of the vertices. This is all done by the CPU:
- Collision Detection
- Animation and Physics
- Game Logic
Once the new geometry is uploaded to the GPU, the GPU pipeline performs the following steps:
- Vertex Generation
- Vertex Processing
- Primitive Generation
- Primitive Processing
- Fragment Generation / Rasterization
- Fragment Processing
- Pixel Operations
When should you use it?
- You will need the graphics pipeline when doing 3D graphics.