Notes
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
Un nuanceur de vertex programmable est constitué d’un ensemble d’instructions qui fonctionnent sur les données de vertex. Inscrit les données de transfert dans et hors de l’ALU. Vous pouvez appliquer un contrôle supplémentaire pour modifier l’instruction, les résultats ou les données écrites.
La version du nuanceur de vertex vs_3_0 étend l’ensemble de fonctionnalités pris en charge par vs_2_x. Chacune des fonctionnalités de vs_2_X qui nécessite la définition d’une limite est disponible dans vs_3_0 sans nécessiter la limite.
- Instructions - vs_3_0 contient une liste des instructions disponibles.
- Registres - vs_3_0 répertorie les différents types de registres utilisés par l’ALU du nuanceur de vertex.
- modificateurs de registre de nuanceurs de vertex sont utilisés pour modifier le fonctionnement d’une instruction.
- modificateurs du registre source du nuanceur de vertex modifier les données du registre source avant l’exécution de l’instruction.
- Registre source Swizzling donne un contrôle supplémentaire sur les composants d’inscription lus, copiés ou écrits.
- masque de registre de destination détermine quels composants du registre de destination sont écrits.
Nouvelles fonctionnalités
Les nouvelles fonctionnalités de la version du nuanceur de vertex vs_3_0 sont répertoriées dans les sections suivantes.
Indexation des registres
Dans les modèles de nuanceur précédents, seule la banque d’inscriptions constantes peut être indexée. Dans ce modèle, les banques d’inscription suivantes peuvent être indexées à l’aide du registre de compteurs de boucles (aL) :
- Registre d’entrée (v#)
- Registre de sortie (o#)
Vertex Textures
Ce modèle de nuanceur prend en charge la recherche de texture dans le nuanceur de vertex à l’aide de texldl. Le moteur de vertex comporte quatre étapes d’échantillonnage de texture (distinctes de l’échantillonneur de carte de déplacement et des échantillonneurs de texture dans le moteur de pixels) qui peuvent être utilisées pour échantillonner des textures définies à ces étapes. Consultez textures de vertex dans vs_3_0 (DirectX HLSL).
Fréquence du flux de vertex
Cette fonctionnalité permet à un sous-ensemble des registres d’entrée d’être initialisés à un taux différent d’une fois par vertex. Consultez de dessin de géométrie non indexée.
Sortie du nuanceur
Comme pour vs_2_0, la sortie du nuanceur peut varier avec le contrôle de flux statique. Soyez prudent avec le branchement dynamique, car cela peut entraîner la variation des sorties du nuanceur par vertex. Cela produit des résultats imprévisibles sur différents matériels.
Contrôle de flux dynamique
Toutes les instructions de contrôle de flux dynamique sont prises en charge. La valeur de profondeur maximale d’imbrication autorisée est 24. (Consultez limites d’imbrication du contrôle de flux pour plus d’informations.)
Registres temporaires
Un total de 32 registres temporaires (r#) est pris en charge.
Contrôle de flux statique
La profondeur maximale d’imbrication pour boucle - vs/rep - vs est de 4. Profondeur maximale d’imbrication pour appel - vs/callnz bool - vs/callnz pred - vs est 4. Pour si bool - vs, la valeur maximale de profondeur d’imbrication autorisée est 24. (Consultez limites d’imbrication du contrôle de flux pour plus d’informations.)
Prédication
La prédication des instructions est prise en charge. Utilisez setp_comp - vs pour définir le registre de prédicats.
Nombre d’instructions
Chaque nuanceur de vertex est autorisé n’importe où entre 512 et le nombre d’emplacements dans MaxVertexShader30InstructionSlots dans D3DCAPS9. Le nombre d’instructions exécutées peut être beaucoup plus élevé en raison de la prise en charge de la boucle/de la rep ; Toutefois, cela est limité par MaxVShaderInstructionsExecuted dans D3DCAPS9 qui doit être au moins 0xFFFF.
Caps d’appareil
Si le nuanceur de vertex 3_0 est pris en charge, les majuscules suivantes sont prises en charge dans le matériel (au minimum) :
Casquette | Capacité |
---|---|
Majuscules du nuanceur |
|
GuardBandLeft, GuardBandTop, GuardBandRight, GuardBandBottom | 8K |
VertexShaderVersion | 3_0 |
MaxVertexShaderConst | 256 |
MaxVertexShader30InstructionSlots | 512 |
Prise en charge du brouillard | D3DPRASTERCAPS_FOGVERTEX |
VertexTextureFilterCaps | |
D3DDEVCAPS2_VERTEXELEMENTSCANSHARESTREAMOFFSET | Les éléments de vertex dans une déclaration de vertex peuvent partager le même décalage de flux. |
Formats de vertex |
|
Rubriques connexes