Graphics Reference
In-Depth Information
Input Assembler (IA) stage
The IA stage reads primitive data (points, lines, and/or triangles) from buffers and assembles
them into primitives for use in subsequent stages.
Usually one or more vertex buffers, and optionally an index buffer, are provided as input.
An input layout tells the input assembler what structure to expect the vertex buffer in.
The vertex buffer itself is also optional, where a vertex shader only has a vertex ID as
input (using the SV_VertexID shader system value input semantic) and then can either
generate the vertex data procedurally or retrieve it from a resource using the vertex ID
as an index. In this instance, the input assembler is not provided with an input layout or
vertex buffer, and simply receives the number of vertices that will be drawn. For more
information, see http://msdn.microsoft.com/en-us/library/windows/desktop/
bb232912(v=vs.85).aspx .
Device context commands that act upon the input assembler directly are found on
the DeviceContext.InputAssembler property, for example, DeviceContext.
InputAssembler.SetVertexBuffers , or for unmanaged begin with IA, for example,
ID3D11DeviceContext::IASetVertexBuffers .
Vertex Shader (VS) stage
The vertex shader allows per-vertex operations to be performed upon the vertices provided
by the input assembler. Operations include manipulating per-vertex properties such as
position, color, texture coordinate, and a vertex's normal.
A vertex can be comprised of up to sixteen 32-bit vectors (up to four components each).
A minimal vertex usually consists of position, color, and the normal vector. In order to support
larger sets of data or as an alternative to using a vertex buffer, the vertex shader can also
retrieve data from a texture or UAV.
A vertex shader is required; even if no transform is needed, a shader must be provided that
simply returns vertices without modifications.
Device context commands that are used to control the vertex shader stage are grouped within
the DeviceContext.VertexShader property or for unmanaged begin with VS, for example,
DeviceContext.VertexShader.SetShaderResources and ID3D11DeviceContext:
:VSSetShaderResources , respectively.
Hull Shader (HS) stage
The hull shader is the first stage of the three optional stages that together support hardware
accelerated tessellation. The hull shader outputs control points and patches constant
data that controls the fixed function tessellator stage. The shader also performs culling by
excluding patches that do not require tessellation (by applying a tessellation factor of zero).
 
Search WWH ::




Custom Search