如何:初始化鑲嵌器階段
一般而言,鑲嵌會將修補程式的精簡、使用者定義的模型展開成包含可程式化詳細資料的幾何。 幾何通常是一組三角形,代表詳細的表面幾何。 本主題說明如何初始化鑲嵌式階段。
鑲嵌器階段是三個階段的第二個階段,可一起運作,以鑲嵌或磚表面。 第一個階段是殼層著色器階段;它會針對每個修補程式運作一次,並設定下一個階段 (固定函式鑲嵌器) 的行為。 殼層著色器也會產生使用者定義的輸出,例如輸出控制點和修補程式常數,這些常數會直接傳送到第三個階段的鑲嵌器,也就是網域著色器階段。 每個鑲嵌器階段點都會叫用網域著色器一次,並評估表面位置。
鑲嵌器階段是固定函式階段,沒有要產生的著色器,也沒有要設定的狀態。 它會從殼面著色器階段接收其所有設定狀態;一旦初始化殼層著色器階段,即會自動初始化鑲嵌器階段。
初始化鑲嵌器階段
使用 ID3D11DeviceCoNtext::HSSetShader初始化殼層著色器階段。
void HSSetShader( ID3D11HullShader *pHullShader, ID3D11ClassInstance *const *ppClassInstances, UINT NumClassInstances );
ppClassInstances 是著色器介面陣列的指標,由 ID3D11ClassInstance 指標表示,以及 以 NumClassInstances表示的介面數目。 如果未使用,這些參數可以分別設定為 Null 和 0。
初始化殼層著色器階段之後,您也應該初始化網域著色器階段。
相關主題