User talk:Oeq1st1
Appearance
Drafting Direct3D Pipeline
[edit]Pipeline
[edit]![](http://upload.wikimedia.org/wikipedia/commons/thumb/d/d2/D3D_Pipeline.svg/220px-D3D_Pipeline.svg.png)
The Microsoft Direct3D 10 API defines a process to convert a group of vertices, textures, buffers, and state into an image on the screen. This process is described as a rendering pipeline with several distinct stages. The different stages of the Direct3D 10 pipeline[1] are:[2]
- Input Assembler: Reads in vertex data from a user supplied vertex buffer and feeds them down the pipeline.
- Vertex Shader: Performs operations on a single vertex at a time, such as transformations, skinning, or lighting.
- Geometry Shader: Processes entire primitives such as triangles, points, or lines. Given a primitive, this stage discards it, or generates one or more new primitives.
- Stream Output: Can write out the previous stage's results to memory. This is useful to recirculate data back into the pipeline.
- Rasterizer: Converts primitives into pixels, feeding these pixels into the pixel shader. The Rasterizer may also perform other tasks such as clipping what is not visible, or interpolating vertex data into per-pixel data.
- Pixel Shader: Determines the final pixel colour to be written to the render target and can also calculate a depth value to be written to the depth buffer.
- Output Merger: Merges various types of output data (pixel shader values, alpha blending, depth/stencil...) to build the final result.
The pipeline stages illustrated with a round box are fully programmable. The user provides a shader program that describes the exact operations to be completed for that stage. Many stages are optional and can be disabled altogether.