Partager via


EvaluateAttributeSnapped, fonction

Évalue au centroïde de pixels avec un décalage.

Syntaxe

numeric EvaluateAttributeSnapped(
  in attrib numeric value,
  in 
            int2 offset
);

Paramètres

value [in]

Type : attrib numeric

Valeur d'entrée.

offset [in]

Type : int2

Décalage 2D à partir du centre de pixels à l’aide d’une grille de 16 x 16.

Notes

La plage du paramètre offset doit être définie par le code d’octet suivant.

Seuls les 4 bits les moins significatifs des deux premiers composants (U, V) du décalage de pixels sont utilisés. La conversion du point fixe 4 bits en virgule flottante est la suivante (MSB... LSB), où le MSB fait partie de la fraction et détermine le signe :

  • 1000 = -0,5f (-8 / 16)
  • 1001 = -0,4375f (-7 / 16)
  • 1010 = -0,375f (-6 / 16)
  • 1011 = -0,3125f (-5 / 16)
  • 1100 = -0,25f (-4 / 16)
  • 1101 = -0,1875f (-3 / 16)
  • 1110 = -0,125f (-2 / 16)
  • 1111 = -0,0625f (-1 / 16)
  • 0000 = 0,0f ( 0 / 16)
  • 0001 = 0,0625f ( 1 / 16)
  • 0010 = 0,125f ( 2 / 16)
  • 0011 = 0,1875f ( 3 / 16)
  • 0100 = 0,25f ( 4 / 16)
  • 0101 = 0,3125f ( 5 / 16)
  • 0110 = 0,375f ( 6 / 16)
  • 0111 = 0,4375f ( 7 / 16)

Notes

Les bords gauche et supérieur d’un pixel sont inclus dans le décalage ; Toutefois, les bords inférieur et droit ne sont pas inclus. Tous les autres bits de l’entier 32 bits que vous et les valeurs de décalage V sont ignorés.

 

Une implémentation peut prendre le décalage fourni par le nuanceur et obtenir une valeur de point fixe 32 bits complète (28,4), qui couvre la plage valide, en effectuant le calcul suivant :

iU = (iU<<28)>>28  // keep lowest 4 bits and sign extend, which yields [-8..7]

Si une implémentation doit mapper le décalage à un décalage à virgule flottante, elle effectue le calcul suivant :

fU = ((float)iU)/16

Modèle de nuanceur minimal

Cette fonction est prise en charge dans les modèles de nuanceur suivants.

Modèle de nuanceur Pris en charge
Modèles de nuanceur 5 et versions ultérieures Oui

 

Cette fonction est prise en charge dans les types de nuanceurs suivants :

Sommet Coque Domain Géométrie Pixel Compute
x

 

Voir aussi

Fonctions intrinsèques

Modèle de nuanceur 5