The topic you requested is included in another documentation set. For convenience, it's displayed below. Choose Switch to see the topic in its original location.
A domain shader is the third of three stages that work together to implement tessellation. The inputs for the domain-shader stage come from a hull shader. This topic shows how to create a domain shader.
A domain shader transforms surface geometry (created by the fixed-function tessellator stage) using hull shader output-control points, hull shader output patch-constant data, and a single set of tessellator uv coordinates.
To create a domain shader
- Design a domain shader. See How To: Design a Domain Shader.
- Compile the shader code.
- Create a domain-shader object using ID3D11Device::CreateDomainShader.
HRESULT CreateDomainShader( const void *pShaderBytecode, // SIZE_T BytecodeLength, // ID3D11ClassLinkage *pClassLinkage, // ID3D11DomainShader **ppDomainShader );
- Initialize the pipeline stage using ID3D11DeviceContext::DSSetShader.
void DSSetShader( ID3D11DomainShader *pDomainShader, // ID3D11ClassInstance *const *ppClassInstances, UINT NumClassInstances );
A domain shader must be bound to the pipeline if a hull shader is bound. In particular, it is not valid to directly stream out hull shader control points with the geometry shader.
Related topics
Send comments about this topic to Microsoft
Build date: 11/28/2012