Procedura: Creare un domain shader
Uno shader di dominio è il terzo di tre fasi che interagiscono per implementare la tessellazione. Gli input per la fase domain-shader provengono da uno shader dello scafo. Questo argomento illustra come creare uno shader di dominio.
Un domain shader trasforma la geometria della superficie (creata dalla fase del tessellatore a funzione fissa) usando i punti di controllo output dello shader dello hull, i dati della costante patch di output dello hull shader e un singolo set di coordinate uv tessellator.
Per creare uno shader di dominio
Progettare uno shader di dominio. Vedere Procedura: progettare un domain shader.
Compilare il codice shader.
Creare un oggetto domain-shader usando ID3D11Device::CreateDomainShader.
HRESULT CreateDomainShader( const void *pShaderBytecode, // SIZE_T BytecodeLength, // ID3D11ClassLinkage *pClassLinkage, // ID3D11DomainShader **ppDomainShader );
Inizializzare la fase della pipeline usando ID3D11DeviceContext::D SSetShader.
void DSSetShader( ID3D11DomainShader *pDomainShader, // ID3D11ClassInstance *const *ppClassInstances, UINT NumClassInstances );
Un domain shader deve essere associato alla pipeline se è associato uno shader dello scafo. In particolare, non è valido per trasmettere direttamente i punti di controllo dello shader dello scafo con il geometry shader.
Argomenti correlati