如何:建立殼層著色器
殼層著色器是三個階段的前三個階段,可一起實 作鑲嵌。 殼層著色器輸出會驅動鑲嵌器階段,以及網域著色器階段。 本主題說明如何建立殼層著色器。
殼層著色器會將一組輸入控制點 (從頂點著色器) 轉換成一組輸出控制點。 根據轉換 (一般轉換是基礎轉換) ,輸入和輸出點的數目可能會因內容和數位而異。
殼層著色器也會輸出網域著色器和鑲嵌器的修補常數資訊,例如鑲嵌因數。 固定函數鑲嵌器階段會使用鑲嵌因數,以及在殼層著色器中宣告的其他狀態,來判斷鑲嵌多少。
建立殼層著色器
設計殼層著色器。 請參閱 如何:設計殼層著色器。
編譯著色器程式碼
使用 ID3D11Device::CreateHullShader建立殼層著色器物件。
HRESULT CreateHullShader( const void *pShaderBytecode, SIZE_T BytecodeLength, ID3D11ClassLinkage *pClassLinkage, ID3D11HullShader **ppHullShader );
使用 ID3D11DeviceCoNtext::HSSetShader初始化管線階段。
void HSSetShader( ID3D11HullShader *pHullShader, ID3D11ClassInstance *const *ppClassInstances, UINT NumClassInstances );
如果殼層著色器系結,網域著色器必須系結至管線。 特別是,使用幾何著色器直接串流出殼層著色器控制點並無效。
相關主題