Comment : créer un nuanceur de domaine
Un nuanceur de domaine est le troisième des trois étapes qui fonctionnent ensemble pour implémenter le pavage. Les entrées de l’étape de nuanceur de domaine proviennent d’un nuanceur de coque. Cette rubrique montre comment créer un nuanceur de domaine.
Un nuanceur de domaine transforme la géométrie de surface (créée par l’étape du paveur de la fonction fixe) à l’aide des points de contrôle de sortie de nuanceur de coque, des données de correction de sortie de nuanceur de coque et un ensemble unique de coordonnées UV du paveur.
Pour créer un nuanceur de domaine
Concevoir un nuanceur de domaine. Consultez Comment : concevoir un nuanceur de domaine.
Compilez le code du nuanceur.
Créez un objet de nuanceur de domaine à l’aide de ID3D11Device :: CreateDomainShader.
HRESULT CreateDomainShader( const void *pShaderBytecode, // SIZE_T BytecodeLength, // ID3D11ClassLinkage *pClassLinkage, // ID3D11DomainShader **ppDomainShader );Initialisez l’étape de pipeline à l’aide de ID3D11DeviceContext ::D ssetshader.
void DSSetShader( ID3D11DomainShader *pDomainShader, // ID3D11ClassInstance *const *ppClassInstances, UINT NumClassInstances );
Un nuanceur de domaine doit être lié au pipeline si un nuanceur de coque est lié. En particulier, il n’est pas valide de diffuser directement en continu des points de contrôle de nuanceur de coque avec le nuanceur Geometry.