Modificateurs pour ps_2_0 et versions ultérieures
Les modificateurs d’instructions affectent le résultat de l’instruction avant qu’elle soit écrite dans le registre de destination.
Cette section contient des informations de référence sur les modificateurs d’instructions implémentés par le nuanceur de pixels version 2_0 et ultérieure.
Nom | Syntaxe | 2_0 | 2_x | 2_sw | 3_0 | 3_sw |
---|---|---|---|---|---|---|
Centroïde | _centroïde | x | x | x | x | x |
Partial_Precision | _pp | x | x | x | x | x |
saturé | _sam | x | x | x | x | x |
Centroïde
Le modificateur centroïde est un modificateur facultatif qui limite l’interpolation d’attribut dans la plage de la primitive lorsqu’un centre de pixels multisample n’est pas couvert par la primitive. Ceci peut être vu dans l’échantillonnage centroïde.
Vous pouvez appliquer le modificateur centroïde à une instruction d’assembly, comme indiqué ici :
dcl_texcoord0_centroid v0
Vous pouvez également appliquer le modificateur centroïde à une sémantique, comme illustré ici :
float4 TexturePointCentroidPS( float4 TexCoord : TEXCOORD0_centroid ) : COLOR0
{
return tex2D( PointSampler, TexCoord );
}
En outre, toute registre de couleurs d’entrée (v#) déclaré avec une sémantique de couleur aura automatiquement appliqué le centroïde. Les dégradés calculés à partir d’attributs qui sont échantillonné centroïdes ne sont pas garantis pour être exacts.
Précision partielle
Le modificateur d’instruction de précision partielle (_pp) indique les zones où la précision partielle est acceptable, à condition que l’implémentation sous-jacente la prenne en charge. Les implémentations sont toujours libres d’ignorer le modificateur et d’effectuer les opérations affectées en toute précision.
Le modificateur _pp peut se produire dans deux contextes :
- Sur une déclaration de coordonnées de texture pour permettre la transmission de coordonnées de texture au nuanceur de pixels sous forme de précision partielle. Cela permet, par exemple, l’utilisation de coordonnées de texture pour relayer les données de couleur au nuanceur de pixels, ce qui peut être plus rapide avec une précision partielle que avec une précision totale dans certaines implémentations. En l’absence de ce modificateur, les coordonnées de texture doivent être passées en précision totale.
- Sur n’importe quelle instruction, y compris les instructions de chargement de texture. Cela indique que l’implémentation est autorisée à exécuter l’instruction avec une précision partielle et à stocker un résultat de précision partielle. En l’absence d’un modificateur explicite, l’instruction doit être effectuée à pleine précision (quelle que soit la précision d’entrée).
Exemples:
dcl_texcoord0_pp t1
cmp_pp r0, r1, r2, r3
Saturer
Le modificateur d’instruction saturé (_sat) sature (ou pince) le résultat de l’instruction à la plage [0, 1] avant d’écrire dans le registre de destination.
Le modificateur d’instruction _sat peut être utilisé avec n’importe quelle instruction, sauf frc - ps, sincos - ps, et toutes les instructions tex*.
Pour ps_2_0, ps_2_x et ps_2_sw, le modificateur d’instructions _sat ne peut pas être utilisé avec des instructions d’écriture dans des registres de sortie (registre de couleur de sortie ou registre de profondeur de sortie). Cette restriction ne s’applique pas à ps_3_0 et versions ultérieures.
Exemple:
dp3_sat r0, v0, c1
Rubriques connexes