Vorgehensweise: Erstellen eines Domänenshaders
Ein Domänenshader ist die dritte von drei Phasen, die bei der Implementierung von Tessellation zusammenarbeiten. Die Eingaben für die Domänen-Shader-Phase stammen von einem Hull-Shader. In diesem Thema wird gezeigt, wie Sie einen Domänenshader erstellen.
Ein Domänen-Shader transformiert die Oberflächengeometrie (erstellt von der Tessellatorstufe mit festen Funktionen) mithilfe von Ausgabe-Steuerungspunkten des Hull-Shaders, daten zur Ausgabe der Patchkonstante des Hull-Shaders und einem einzelnen Satz von Tessellator UV-Koordinaten.
So erstellen Sie einen Domänenshader
Entwerfen sie einen Domänenshader. Weitere Informationen finden Sie unter Vorgehensweise: Entwerfen eines Domänenshaders.
Kompilieren Sie den Shadercode.
Erstellen Sie mithilfe von ID3D11Device::CreateDomainShader ein Domain-Shader-Objekt.
HRESULT CreateDomainShader( const void *pShaderBytecode, // SIZE_T BytecodeLength, // ID3D11ClassLinkage *pClassLinkage, // ID3D11DomainShader **ppDomainShader );
Initialisieren Sie die Pipelinephase mithilfe von ID3D11DeviceContext::D SSetShader.
void DSSetShader( ID3D11DomainShader *pDomainShader, // ID3D11ClassInstance *const *ppClassInstances, UINT NumClassInstances );
Ein Domänenshader muss an die Pipeline gebunden sein, wenn ein Hull-Shader gebunden ist. Insbesondere ist es nicht gültig, Rumpf-Shader-Steuerungspunkte direkt mit dem Geometrie-Shader zu streamen.
Zugehörige Themen