Si _ COMP-vs
Démarrer une si bool-vs... else-vs... endif-bloc vs , avec une condition basée sur les valeurs qui peuvent être calculées dans un nuanceur. Cette instruction est utilisée pour ignorer un bloc de code, en fonction d’une condition.
Syntaxe
| Si _ COMP src0, src1 |
|---|
Où :
_COMP est une comparaison entre les deux registres sources. Les valeurs possibles sont les suivantes :
Syntaxe Comparaison _TB Supérieur à _terme Inférieur à _& Supérieur ou égal à _WinINSTALL Inférieur ou égal à _eq Égal à _ne Différent de src0 est un registre source. La réplication de Swizzle est requise pour sélectionner un composant.
src1 est un registre source. La réplication de Swizzle est requise pour sélectionner un composant.
Notes
| Versions de nuanceur vertex | 1_1 | 2 _ 0 | 2 _ x | 2 _ logiciels | 3 _ 0 | 3 _ logiciels |
|---|---|---|---|---|---|---|
| Si _ COMP | x | x | x | x |
Cette instruction est utilisée pour ignorer un bloc de code, en fonction d’une condition.
if_lt src0, src1
jump to the corresponding else or endif instruction;
Veillez à utiliser les modes de comparaison égal à et différent de sur les nombres à virgule flottante. Étant donné que l’arrondi se produit pendant les calculs à virgule flottante, la comparaison peut être effectuée par rapport à une valeur Epsilon (petit nombre différent de zéro) pour éviter les erreurs.
Les restrictions sont les suivantes :
- Si _ COMP... else-vs... endif- les blocs vs (avec les blocs if prédicats) peuvent être imbriqués jusqu’à 24 couches.
- les registres src0 et src1 requièrent un Swizzle de réplication.
- Si _ les blocs COMP doivent se terminer par une instruction else-vs ou endif-vs .
- Si _ COMP... else-vs... endif-les blocs vs ne peuvent pas chevaucher un bloc de boucle. Le _ bloc If COMP doit être complètement à l’intérieur ou à l’extérieur du bloc Loop-vs .
Exemple
Cette instruction fournit un contrôle de workflow dynamique conditionnel.
if_lt r3.x, r4.y
// Instructions to run if r3.x < r4.y
else
// Instructions to run otherwise
endif