Share via


Cómo: Crear un sombreador de dominio

Un sombreador de dominio es la tercera de tres fases que funcionan conjuntamente para implementar la teselación. Las entradas de la fase de sombreador de dominio proceden de un sombreador de casco. En este tema se muestra cómo crear un sombreador de dominio.

Un sombreador de dominio transforma la geometría de la superficie (creada por la fase teseladora de función fija) mediante puntos de control de salida del sombreador de casco, datos de constante de revisión de salida del sombreador de casco y un único conjunto de coordenadas uv de teselator.

Para crear un sombreador de dominio

  1. Diseñar un sombreador de dominio. Vea Cómo: Diseñar un sombreador de dominio.

  2. Compile el código del sombreador.

  3. Cree un objeto de sombreador de dominio con ID3D11Device::CreateDomainShader.

    HRESULT CreateDomainShader(
      const void *pShaderBytecode, // 
      SIZE_T BytecodeLength, // 
      ID3D11ClassLinkage *pClassLinkage, // 
      ID3D11DomainShader **ppDomainShader
    );
    
  4. Inicialice la fase de canalización mediante ID3D11DeviceContext::D SSetShader.

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

Un sombreador de dominio debe enlazarse a la canalización si está enlazado un sombreador de casco. En concreto, no es válido transmitir directamente los puntos de control del sombreador de casco con el sombreador de geometría.

Cómo usar Direct3D 11

Información general sobre teselación