Étape du nuanceur de vertex
L’étape du nuanceur de vertex (VS) traite les sommets de l’assembleur d’entrée, effectuant des opérations par vertex, telles que les transformations, la mise en forme, le morphage et l’éclairage par vertex. 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.
Nuanceur de vertex
Chaque vertex d’entrée de nuanceur de vertex peut être composé de 16 vecteurs 32 bits (jusqu’à 4 composants chacun) et chaque vertex de sortie peut être composé de 16 vecteurs 4 composants 32 bits maximum. Tous les nuanceurs de vertex doivent avoir au moins une entrée et une sortie, ce qui peut être aussi peu que la 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 sémantique de valeur système). É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 écran ne sont pas obligatoires (à l’aide de fonctions intrinsèques HLSL : Sample (DirectX HLSL Texture Object), SampleCmpLevelZero (Objet texture HLSL DirectX)et SampleGrad (Objet texture DirectX HLSL)).