Jak stworzyć cieniowanie domeny
Cieniowanie domeny to trzeci z trzech etapów, które współpracują ze sobą w celu zaimplementowania tessellation. Dane wejściowe dla etapu cieniowania domeny pochodzą z cieniowania kadłuba. W tym temacie przedstawiono sposób tworzenia cieniowania domeny.
Cieniowanie domeny przekształca geometrię powierzchni (utworzoną przez etap teselatora z funkcją stałą) przy użyciu punktów kontrolnych wyjścia shaderu powłoki, danych stałych poprawki shaderu powłoki i jednego zestawu współrzędnych uv teselatora.
Aby utworzyć cieniowanie domeny
Projektowanie cieniowania domeny. Zobacz Jak: projektowanie domenowego cieniowania.
Skompiluj kod cieniowania.
Utwórz obiekt cieniowania domeny przy użyciu ID3D11Device::CreateDomainShader.
HRESULT CreateDomainShader( const void *pShaderBytecode, // SIZE_T BytecodeLength, // ID3D11ClassLinkage *pClassLinkage, // ID3D11DomainShader **ppDomainShader );
Zainicjuj etap przetwarzania przy użyciu ID3D11DeviceContext::DSSetShader.
void DSSetShader( ID3D11DomainShader *pDomainShader, // ID3D11ClassInstance *const *ppClassInstances, UINT NumClassInstances );
Shader domeny musi być powiązany z potokiem, jeśli shader kadłuba jest powiązany. W szczególności nie jest dozwolone bezpośrednio przesyłać punkty kontrolne shaderów kadłuba za pomocą cieniowania geometrii.
Tematy pokrewne
-
Jak używać Direct3D 11