如何:创建域着色器
域着色器是协同工作以实现 分割的三个阶段中的第三个阶段。 域着色器阶段的输入来自外壳着色器。 本主题演示如何创建域着色器。
域着色器使用外壳着色器输出控制点、外壳着色器输出补丁常量数据和一组分割器 uv 坐标,转换由固定函数细化器阶段) 创建的图面几何 (图形。
创建域着色器
设计域着色器。 请参阅 如何:设计域着色器。
编译着色器代码。
使用 ID3D11Device::CreateDomainShader 创建域着色器对象。
HRESULT CreateDomainShader( const void *pShaderBytecode, // SIZE_T BytecodeLength, // ID3D11ClassLinkage *pClassLinkage, // ID3D11DomainShader **ppDomainShader );
使用 ID3D11DeviceContext::D SSetShader 初始化管道阶段。
void DSSetShader( ID3D11DomainShader *pDomainShader, // ID3D11ClassInstance *const *ppClassInstances, UINT NumClassInstances );
如果绑定了外壳着色器,则必须将域着色器绑定到管道。 具体而言,使用几何着色器直接流出外壳着色器控制点是无效的。
相关主题