共用方式為


如何:建立網域著色器

網域著色器是三個階段中的第三個階段,可一起實 作鑲嵌。 網域著色器階段的輸入來自殼層著色器。 本主題說明如何建立網域著色器。

定義域著色器會使用殼層著色器輸出控制點、殼層著色器輸出修補常數資料,以及一組鑲嵌器 uv 座標,轉換固定函式鑲嵌器) 階段所建立的表面幾何 (。

建立網域著色器

  1. 設計網域著色器。 請參閱 如何:設計定義域著色器

  2. 編譯著色器程式碼。

  3. 使用 ID3D11Device::CreateDomainShader建立網域著色器物件。

    HRESULT CreateDomainShader(
      const void *pShaderBytecode, // 
      SIZE_T BytecodeLength, // 
      ID3D11ClassLinkage *pClassLinkage, // 
      ID3D11DomainShader **ppDomainShader
    );
    
  4. 使用 ID3D11DeviceCoNtext::D SSetShader初始化管線階段。

    void DSSetShader(
      ID3D11DomainShader *pDomainShader, // 
      ID3D11ClassInstance *const *ppClassInstances,
      UINT NumClassInstances
    );
    

如果殼層著色器系結,網域著色器必須系結至管線。 特別是,使用幾何著色器直接串流出殼層著色器控制點並無效。

如何使用 Direct3D 11

鑲嵌概觀