Cómo: Inicializar la fase de teselador

En general, la teselación expande el modelo compacto definido por el usuario de una revisión en geometría que contiene una cantidad de detalle programable. La geometría suele ser un conjunto de triángulos que representa la geometría de superficie detallada. En este tema se muestra cómo inicializar la fase de teselador.

La fase de teselador es la segunda de tres fases que funcionan juntas para teselar o mosaico de una superficie. La primera fase es la etapa de sombreador de casco; funciona una vez por revisión y configura cómo se comporta la siguiente fase (el teselador de función fija). Un sombreador de casco también genera salidas definidas por el usuario, como puntos de control de salida y constantes de revisión que se envían más allá del teselador directamente a la tercera fase, la fase del sombreador de dominio. Se invoca un sombreador de dominio una vez por punto de fase de teselador y evalúa las posiciones de la superficie.

La fase de teselador es una fase de función fija, no hay ningún sombreador que generar y no hay ningún estado que establecer. Recibe todo su estado de configuración de la etapa del sombreador de casco; Una vez que se ha inicializado la fase del sombreador de casco, la fase de teselador se inicializa automáticamente.

Para inicializar la fase de teselador

  • Inicialice la fase del sombreador de casco mediante ID3D11DeviceContext::HSSetShader.

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

    ppClassInstances es un puntero a una matriz de interfaces de sombreador, representada por punteros ID3D11ClassInstance y el número de interfaces, representadas por NumClassInstances. Si no se usa, estos parámetros se pueden establecer en NULL y 0 respectivamente.

Después de inicializar la fase del sombreador de casco, también debe inicializar la fase del sombreador de dominio.

Cómo usar Direct3D 11

Información general sobre teselación