Direct3D's programmable pipelining is used to render graphics for real-time games (one word generalization-real-time rendering)
The above figure is a real-time rendering pipeline for Dx11, and several versions of DX are backwards compatible.
Input-assembler Stage: Enter the collection phase to provide all the data (triangles, lines, points) to the assembly line.
Vertex-shader Stage: Vertex shading phase, which is the main processing vertex. The main operations are: transform (transformation), texture? (skinning), illumination (lighting). A fixed-point shader always accepts a single vertex input and produces a single vertex output.
Geometry-shader stage: The geometry shader phase, which processes the entire original basic geometry. The input is a complete base geometry (three vertices a triangle, two vertices a line, one vertex at a point). In addition, each primitive also includes vertex data for adjacent edges, meaning that the triangle contains an additional 3 vertices, and a line contains an additional two vertices. The geometry shader also supports limited geometry enlargement and reduction. Given an input primitive, the geometry shader can ignore or discard the primitive.
Stream-output Stage: Rasterize The basic metadata from the pipeline into memory. The data that flows into the memory can be loopback into the pipeline as input data.
Rasterizer Stage: Rasterizer prepares primitives for pixel shaders around primitives (elements? )。 The rasterizer determines how the pixel shader is called.
Pixel-shader Stage: The pixel shader receives interpolated data for a primitive and produces each pixel data (such as color).
Output-merger stage: The output merge phase, which combines various types of output data based on the content of the render target and depth/template buffers, and then produces the final pipelining result.
Hull-shader, Surface subdivision (Tessellator, mosaic), Domain shader phase, which collectively comprise the tessellation phase. The surface subdivision stage transforms the higher-order polygons (surfaces, not on the same plane) into triangles to render.
DirectX Graphics Pipeline