共用方式為


如何:初始化鑲嵌器階段

一般而言,鑲嵌會將修補程式的精簡、使用者定義的模型展開成包含可程式化詳細資料的幾何。 幾何通常是一組三角形,代表詳細的表面幾何。 本主題說明如何初始化鑲嵌式階段。

鑲嵌器階段是三個階段的第二個階段,可一起運作,以鑲嵌或磚表面。 第一個階段是殼層著色器階段;它會針對每個修補程式運作一次,並設定下一個階段 (固定函式鑲嵌器) 的行為。 殼層著色器也會產生使用者定義的輸出,例如輸出控制點和修補程式常數,這些常數會直接傳送到第三個階段的鑲嵌器,也就是網域著色器階段。 每個鑲嵌器階段點都會叫用網域著色器一次,並評估表面位置。

鑲嵌器階段是固定函式階段,沒有要產生的著色器,也沒有要設定的狀態。 它會從殼面著色器階段接收其所有設定狀態;一旦初始化殼層著色器階段,即會自動初始化鑲嵌器階段。

初始化鑲嵌器階段

  • 使用 ID3D11DeviceCoNtext::HSSetShader初始化殼層著色器階段。

    void HSSetShader(
      ID3D11HullShader *pHullShader,  
      ID3D11ClassInstance *const *ppClassInstances,
      UINT NumClassInstances
    );
    

    ppClassInstances 是著色器介面陣列的指標,由 ID3D11ClassInstance 指標表示,以及 以 NumClassInstances表示的介面數目。 如果未使用,這些參數可以分別設定為 Null 和 0。

初始化殼層著色器階段之後,您也應該初始化網域著色器階段。

如何使用 Direct3D 11

鑲嵌概觀