Partager via


Étape Vertex Shader (VS)

L’étape du nuanceur de vertex (VS) traite les sommets, en effectuant généralement 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 vertex de sortie.

Objectif et utilisations

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

  • Transformations
  • Dépouillement
  • 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 de pipeline graphique . Cette étape du nuanceur utilise le modèle de nuanceur commun 4.0 common-shader core.

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 du nuanceur de vertex peut être composé d’un maximum de 16 vecteurs 32 bits (jusqu’à 4 composants chacun). Chaque vertex de sortie peut être composé de 16 vecteurs à 4 composants 32 bits. Tous les nuanceurs de vertex doivent avoir au minimum une entrée et une sortie, ce qui peut être aussi peu 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émantique). É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 introduits que dans 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 vertex, y compris sur les sommets adjacents dans les topologies primitives d’entrée avec adjacence. Le nombre de fois où le nuanceur de vertex a été exécuté peut être interrogé à partir du processeur à l’aide de la statistique du pipeline VSInvocations.

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

Entrée

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

Sortie

Un sommet unique. Chaque vertex de sortie peut être composé de 16 vecteurs à 4 composants 32 bits.

Pipeline graphique