ps_1_1, ps_1_2, ps_1_3, ps_1_4
L’assembleur de nuanceur de pixels est constitué d’un ensemble d’instructions qui fonctionnent sur les données de pixel contenues dans les registres. Les opérations sont exprimées sous forme d’instructions composées d’un opérateur et d’un ou plusieurs opérandes. Les instructions utilisent des registres pour transférer des données dans et hors de l’ALU du nuanceur de pixels. Les registres peuvent également être utilisés par certaines instructions pour conserver des résultats temporaires.
Notes
La prise en charge HLSL du nuanceur de pixels 1.x est déconseillée.
Instructions
Il existe deux catégories main d’instructions de nuanceur de pixels : les instructions arithmétiques et les instructions d’adressage de texture. Les instructions arithmétiques modifient les données de couleur. Les opérations d’adressage de texture traitent les données de coordonnées de texture et, dans la plupart des cas, échantillonner une texture. Les instructions du nuanceur de pixels sont exécutées sur une base par pixel ; autrement dit, ils n’ont aucune connaissance des autres pixels dans le pipeline.
Les instructions d’adressage de texture utilisent chacune un emplacement, mais les instructions arithmétiques peuvent être associées pour activer les composants de couleur (RVB) et une instruction de composant alpha dans un seul emplacement.
ps_1_1, ps_1_2, ps_1_3, ps_1_4 Instructions contient une liste des instructions disponibles.
Lorsque le multi-échantillonnage est activé, les nuanceurs de pixels ne sont exécutés qu’une seule fois par pixel, et non une fois pour chaque sous-pixel. Le multi-échantillonnage augmente uniquement la résolution des bords de polygones, ainsi que les tests de profondeur et de gabarit. Par exemple, si le multi-échantillonnage 3x3 est activé et qu’un triangle en cours de rastérisation couvre cinq des neuf sous-pixels d’un pixel particulier, le nuanceur de pixels est exécuté une fois et le même résultat de couleur est appliqué aux cinq sous-pixels.
Registres
ps_1_1__ps_1_2__ps_1_3__ps_1_4 Registers répertorie les différents registres utilisés par le nuanceur ALU.
Modificateurs
Les modificateurs pour ps_1_X peuvent être utilisés pour modifier les fonctionnalités d’une instruction ou les données lues ou écrites dans un registre.
Direct3D 9 nécessite des calculs intermédiaires pour maintenir une précision d’au moins 8 bits pour tous les formats de surface. Une précision plus élevée (12 bits) pour les mathématiques en phase et une saturation à 8 bits entre les étapes de texture sont recommandées. Aucun mode d’arrondi modifiable ou aucune exception n’est pris en charge. La multiplication doit être prise en charge avec une précision arrondie à proche pour limiter la perte de précision au minimum.
Nombre d’échantillonneurs
Le nombre d’échantillonneurs de texture disponibles est le suivant :
- Pour ps_1_0 - ps_1_3, le maximum est 4.
- Pour ps_1_4, le maximum est 6.
Rubriques connexes