Partager via


Étape Vertex Shader (VS)

L’étape nuanceur de vertex (VS) traite les sommets, généralement en effectuant des opérations telles que les transformations, l’apparence et l’éclairage. Un nuanceur de vertex prend un sommet d’entrée unique et produit un seul sommet de sortie.

Objectif et utilisations

L’étape du nuanceur de vertex (VS) est utilisée pour le traitement individuel par vertex, par exemple :

  • Transformations
  • Skinning
  • Morphing
  • Éclairage par vertex

L’étape du nuanceur de vertex est une étape de nuanceur programmable ; il s’affiche sous la forme d’un bloc arrondi dans le diagramme du pipeline graphique. Cette étape de nuanceur utilise le modèle de nuanceur 4.0 core common-shader.

L’étape du nuanceur de vertex (VS) traite les sommets de l’assembleur d’entrée. Les nuanceurs de vertex fonctionnent toujours sur un seul sommet d’entrée et produisent un sommet de sortie unique. L’étape du nuanceur de vertex doit toujours être active pour que le pipeline s’exécute. Si aucune modification ou transformation de vertex n’est requise, un nuanceur de vertex pass-through doit être créé et défini sur le pipeline.

Chaque vertex d’entrée de nuanceur de vertex peut être composé de 16 vecteurs 32 bits (jusqu’à 4 composants chacun). Chaque vertex de sortie peut être compris entre 16 vecteurs 32 bits et 4 composants. Tous les nuanceurs de vertex doivent avoir au minimum une entrée et une sortie, ce qui peut être aussi petit qu’une valeur scalaire.

L’étape du nuanceur de vertex peut consommer deux valeurs générées par le système à partir de l’assembleur d’entrée : VertexID et InstanceID (voir Valeurs système et sémantiques). Étant donné que VertexID et InstanceID sont tous deux significatifs au niveau du vertex, et que les ID générés par le matériel ne peuvent être alimentés qu’à la première étape qui les comprend, ces valeurs d’ID ne peuvent être transmises qu’à l’étape du nuanceur de vertex.

Les nuanceurs de vertex sont toujours exécutés sur tous les sommets, y compris les sommets adjacents dans les topologies primitives d’entrée avec unedjacency. Le nombre de fois où le nuanceur de vertex a été exécuté peut être interrogé à partir de l’UC à l’aide de la statistique du pipeline VSInvocations.

Un nuanceur de vertex peut effectuer des opérations de chargement et d’échantillonnage de texture où les dérivés de l’espace d’écran ne sont pas requis (à l’aide de fonctions intrinsèques HLSL : Exemple (Objet texture DirectX HLSL), SampleCmpLevelZero (Objet texture DirectX HLSL) et SampleGrad (Objet texture HLSL DirectX)).

Entrée

Un seul vertex, avec des valeurs générées par le système VertexID et InstanceID. Chaque vertex d’entrée de nuanceur de vertex peut être composé de 16 vecteurs 32 bits (jusqu’à 4 composants chacun).

Sortie

Un sommet unique. Chaque vertex de sortie peut être compris entre 16 vecteurs 32 bits et 4 composants.

Pipeline graphique