Étape Domain Shader (DS)
L’étape DS (Domain Shader) calcule la position de vertex d’un point subdivisé dans le correctif de sortie ; il calcule la position de vertex qui correspond à chaque exemple de domaine. Un nuanceur de domaine est exécuté une fois par point de sortie de l’étape tessellator et dispose d’un accès en lecture seule aux constantes de patch de sortie et de patch de sortie du nuanceur de coque, ainsi qu’aux coordonnées UV de sortie de l’étape tessellateur.
Objectif et utilisations
L’étape DS (Domain Shader) génère la position de vertex d’un point subdivisé dans le correctif de sortie, en fonction de l’entrée de l’étape Hull Shader (HS) et de l’étape Tessellator (TS).
Entrée
- Un nuanceur de domaine consomme des points de contrôle de sortie de la phase Hull Shader (HS). Les sorties du nuanceur de coque sont les suivantes :
- Points de contrôle.
- Corriger les données constantes.
- Facteurs de pavage. Les facteurs de pavage peuvent inclure les valeurs utilisées par le tessellateur à fonction fixe, ainsi que les valeurs brutes (avant l’arrondi par la mise en forme d’entiers, par exemple), ce qui facilite la géomorphisation, par exemple.
- Un nuanceur de domaine est appelé une fois par coordonnée de sortie à partir de la phase Tessellator (TS).
Sortie
- L’étape DS (Domain Shader) génère la position de vertex d’un point subdivisé dans le correctif de sortie.
Une fois le nuanceur de domaine terminé, la mise en forme est terminée et les données de pipeline passent à l’étape de pipeline suivante, comme l’étape du nuanceur de géométrie (GS) et l’étape de nuanceur de pixels (PS). Un nuanceur de géométrie qui attend des primitives avec adjacence (par exemple, 6 sommets par triangle) n’est pas valide lorsque la mise en forme est active (il en résulte un comportement non défini, dont la couche de débogage se plaindra).
Exemple
void main( out MyDSOutput result,
float2 myInputUV : SV_DomainPoint,
MyDSInput DSInputs,
OutputPatch<MyOutPoint, 12> ControlPts,
MyTessFactors tessFactors)
{
...
result.Position = EvaluateSurfaceUV(ControlPoints, myInputUV);
}
Rubriques connexes
Commentaires
https://aka.ms/ContentUserFeedback.
Bientôt disponible : Tout au long de 2024, nous allons supprimer progressivement GitHub Issues comme mécanisme de commentaires pour le contenu et le remplacer par un nouveau système de commentaires. Pour plus d’informations, consultezEnvoyer et afficher des commentaires pour