Fonctions intrinsèques
Le tableau suivant répertorie les fonctions intrinsèques disponibles en HLSL. Chaque fonction est accompagnée d'une brève description et d'un lien vers une page de référence contenant des informations sur l'argument d'entrée et le type de retour.
Nom | Description | Modèle de nuanceur minimal |
---|---|---|
abort | Met fin à l'appel de tirage ou de distribution en cours d'exécution. | 4 |
abs | Valeur absolue (par composant). | 1¹ |
acos | Retourne l'arc cosinus de chaque composant de x. | 1¹ |
all | Testez si tous les composants de x sont différents de zéro. | 1¹ |
AllMemoryBarrier | Bloque l'exécution de tous les threads d'un groupe jusqu'à ce que tous les accès à la mémoire soient terminés. | 5 |
AllMemoryBarrierWithGroupSync | Bloque l'exécution de tous les threads d'un groupe jusqu'à ce que tous les accès à la mémoire aient été terminés et que tous les threads du groupe aient atteint cet appel. | 5 |
any | Testez si un composant de x est différent de zéro. | 1¹ |
asdouble | Réinterprète une valeur de conversion en double. | 5 |
asfloat | Convertissez le type d'entrée en float. | 4 |
asin | Retourne l'arc sinus de chaque composant de x. | 1¹ |
asint | Convertissez le type d'entrée en entier. | 4 |
asuint | Réinterprète le schéma binaire d'un type 64 bits en un uint. | 5 |
asuint | Convertissez le type d'entrée en entier non signé. | 4 |
atan | Retourne l'arc tangente de x. | 1¹ |
atan2 | Retourne l'arc tangente de deux valeurs (x,y). | 1¹ |
ceil | Retourne le plus petit entier supérieur ou égal à x. | 1¹ |
CheckAccessFullyMapped | Détermine si toutes les valeurs d'une opération Sample ou Load ont accédé aux mosaïques mappées dans une ressource en mosaïque. | 5 |
attache | Attache x à la plage [min, max]. | 1¹ |
clip | Ignore le pixel actuel, si un composant de x est inférieur à zéro. | 1¹ |
cos | Retourne le cosinus de x. | 1¹ |
cosh | Retourne le cosinus hyperbolique de x. | 1¹ |
compte bits | Compte le nombre de bits (par composant) dans l'entier d'entrée. | 5 |
croix | Retourne le produit croisé de deux vecteurs 3D. | 1¹ |
D3DCOLORtoUBYTE4 | Modifie et met à l'échelle les composantes du vecteur 4D x pour compenser l'absence de prise en charge de UBYTE4 dans certains matériels. | 1¹ |
ddx | Retourne la dérivée partielle de x par rapport à la coordonnée x de l'espace-écran. | 2¹ |
ddx_coarse | Calcule la dérivée partielle de faible précision par rapport à la coordonnée x de l'espace-écran. | 5 |
ddx_fine | Calcule la dérivée partielle haute précision par rapport à la coordonnée x de l'espace-écran. | 5 |
ddy | Retourne la dérivée partielle de x par rapport à la coordonnée y de l'espace-écran. | 2¹ |
ddy_coarse | Calcule la dérivée partielle de faible précision par rapport à la coordonnée y de l'espace-écran. | 5 |
ddy_fine | Calcule la dérivée partielle haute précision par rapport à la coordonnée y de l'espace-écran. | 5 |
degrees | Convertit x de radians en degrés. | 1¹ |
déterminant | Change le déterminant de la matrice carrée m. | 1¹ |
DeviceMemoryBarrier | Bloque l'exécution de tous les threads d'un groupe jusqu'à ce que tous les accès à la mémoire de l'appareil soient terminés. | 5 |
DeviceMemoryBarrierWithGroupSync | Bloque l'exécution de tous les threads d'un groupe jusqu'à ce que tous les accès à la mémoire de l'appareil aient été terminés et que tous les threads du groupe aient atteint cet appel. | 5 |
distance | Retourne la distance entre deux points. | 1¹ |
dot | Retourne le produit scalaire de deux vecteurs. | 1 |
dst | Calcule un vecteur de distance. | 5 |
errorf | Envoie un message d'erreur à la file d'attente d'informations. | 4 |
EvaluateAttributeCentroid | Évalue au centroïde de pixels. | 5 |
EvaluateAttributeAtSample | Évalue à l'emplacement de l'exemple indexé. | 5 |
EvaluateAttributeSnapped | Évalue au centroïde de pixels avec un décalage. | 5 |
exp | Retourne l'exposant base-e. | 1¹ |
exp2 | Exposant de base 2 (par composant). | 1¹ |
f16tof32 | Convertit le float16 stocké dans la moitié inférieure de l'uint en float. | 5 |
f32tof16 | Convertit une entrée en type float16. | 5 |
faceforward | Retourne -n * sign(dot(i, ng)). | 1¹ |
firstbithigh | Obtient l'emplacement du premier bit défini à partir du bit de la commande la plus élevée vers le bas, par composant. | 5 |
firstbitlow | Retourne l'emplacement du premier bit défini à partir du bit de la commande la plus faible vers le haut, par composant. | 5 |
floor | Retourne le plus grand entier inférieur ou égal à x. | 1¹ |
fma | Retourne l'addition multipliée fusionnée à double précision d'un * b + c. | 5 |
fmod | Retourne le reste à virgule flottante de x/y. | 1¹ |
frac | Retourne le composant fractionnaire de x. | 1¹ |
frexp | Retourne la mantisse et l'exposant de x. | 2¹ |
fwidth | Retourne abs(ddx(x)) + abs(ddy(x)) | 2¹ |
GetRenderTargetSampleCount | Retourne le nombre d'exemples de cible de rendu. | 4 |
GetRenderTargetSamplePosition | Retourne une position d'exemple (x,y) pour un exemple d'index donné. | 4 |
GroupMemoryBarrier | Bloque l'exécution de tous les threads d'un groupe jusqu'à ce que tous les accès partagés de groupe soient terminés. | 5 |
GroupMemoryBarrierWithGroupSync | Bloque l'exécution de tous les threads d'un groupe jusqu'à ce que tous les accès partagés de groupe aient été terminés et que tous les threads du groupe aient atteint cet appel. | 5 |
InterlockedAdd | Effectue un ajout atomique garanti d'une valeur à la variable de ressource dest. | 5 |
InterlockedAnd | Effectue un and atomique garanti. | 5 |
InterlockedCompareExchange | Compare atomiquement l'entrée à la valeur de comparaison et échange le résultat. | 5 |
InterlockedCompareStore | Compare atomiquement l'entrée à la valeur de comparaison. | 5 |
InterlockedExchange | Affecte la valeur à dest et retourne la valeur d'origine. | 5 |
InterlockedMax | Effectue un max atomique garanti. | 5 |
InterlockedMin | Effectue un min atomique garanti. | 5 |
InterlockedOr | Effectue un or atomique garanti. | 5 |
InterlockedXor | Effectue un xor atomique garanti. | 5 |
isfinite | Retourne true si x est fini, false dans le cas contraire. | 1¹ |
isinf | Retourne true si x est + INF ou - INF, false dans le cas contraire. | 1¹ |
isnan | Retourne true si x est NAN ou QNAN, false dans le cas contraire. | 1¹ |
ldexp | Retourne x * 2exp | 1¹ |
length | Retourne la longueur du vecteur v. | 1¹ |
lerp | Retourne x + s(y - x). | 1¹ |
lit | Retourne un vecteur d'éclairage (ambiant, diffus, spéculaire, 1) | 1¹ |
log | Retourne le logarithme de base e de x. | 1¹ |
log10 | Retourne le logarithme de base 10 de x. | 1¹ |
log2 | Retourne le logarithme de base 2 de x. | 1¹ |
mad | Effectue une opération de multiplication/ajout arithmétique sur trois valeurs. | 5 |
max | Sélectionne la valeur supérieure de x et y. | 1¹ |
min | Sélectionne la valeur inférieure de x et y. | 1¹ |
modf | Coupe la valeur x en deux composants, un entier et un fractionnaire. | 1¹ |
msad4 | Compare une valeur de référence de 4 octets et une valeur source de 8 octets et accumule un vecteur de 4 sommes. | 5 |
mul | Effectue la multiplication de matrices à l'aide de x et y. | 1 |
noise | Génère une valeur aléatoire à l'aide de l'algorithme Perlin-noise. | 1¹ |
normalize | Retourne un vecteur normalisé. | 1¹ |
pow | Retourne xy. | 1¹ |
printf | Soumet un message de nuanceur personnalisé à la file d'attente d'informations. | 4 |
Process2DQuadTessFactorsAvg | Génère les facteurs de pavage corrigés pour un correctif quad. | 5 |
Process2DQuadTessFactorsMax | Génère les facteurs de pavage corrigés pour un correctif quad. | 5 |
Process2DQuadTessFactorsMin | Génère les facteurs de pavage corrigés pour un correctif quad. | 5 |
ProcessIsolineTessFactors | Génère les facteurs de pavage arrondis pour une isoligne. | 5 |
ProcessQuadTessFactorsAvg | Génère les facteurs de pavage corrigés pour un correctif quad. | 5 |
ProcessQuadTessFactorsMax | Génère les facteurs de pavage corrigés pour un correctif quad. | 5 |
ProcessQuadTessFactorsMin | Génère les facteurs de pavage corrigés pour un correctif quad. | 5 |
ProcessTriTessFactorsAvg | Génère les facteurs de pavage corrigés pour un correctif tri. | 5 |
ProcessTriTessFactorsMax | Génère les facteurs de pavage corrigés pour un correctif tri. | 5 |
ProcessTriTessFactorsMin | Génère les facteurs de pavage corrigés pour un correctif tri. | 5 |
radians | Convertit x de degrés en radians. | 1 |
rcp | Calcule une réciproque rapide, approximative et par composant. | 5 |
reflect | Retourne un vecteur de réflexion. | 1 |
refract | Retourne le vecteur de réfraction. | 1¹ |
reversebits | Inverse l'ordre des bits, par composant. | 5 |
round | Arrondit x à l'entier le plus proche | 1¹ |
rsqrt | Retourne 1/sqrt(x) | 1¹ |
saturate | Limite x à la plage [0, 1] | 1 |
sign | Calcule x. | 1¹ |
sin | Retourne le sinus de x. | 1¹ |
sincos | Retourne le sinus et le cosinus de x. | 1¹ |
sinh | Retourne le sinus hyperbolique de x. | 1¹ |
smoothstep | Retourne une interpolation d'Hermite lisse comprise entre 0 et 1. | 1¹ |
sqrt | Racine carrée (par composant) | 1¹ |
step | Renvoie (x >= a) ? 1 : 0 | 1¹ |
tan | Retourne la tangente de x. | 1¹ |
tanh | Retourne la tangente hyperbolique de x. | 1¹ |
tex1D(s, t) | Recherche de texture 1D. | 1 |
tex1D(s, t, ddx, ddy) | Recherche de texture 1D. | 2¹ |
tex1Dbias | Recherche de texture 1D avec biais. | 2¹ |
tex1Dgrad | Recherche de texture 1D avec un dégradé. | 2¹ |
tex1Dlod | Recherche de texture 1D avec LOD. | 3¹ |
tex1Dproj | Recherche de texture 1D avec division projective. | 2¹ |
tex2D(s, t) | Recherche de texture 2D. | 1¹ |
tex2D(s, t, ddx, ddy) | Recherche de texture 2D. | 2¹ |
tex2Dbias | Recherche de texture 2D avec biais. | 2¹ |
tex2Dgrad | Recherche de texture 2D avec un dégradé. | 2¹ |
tex2Dlod | Recherche de texture 2D avec niveau de détail (LOD). | 3 |
tex2Dproj | Recherche de texture 2D avec division projective. | 2¹ |
tex3D(s, t) | Recherche de texture 3D. | 1¹ |
tex3D(s, t, ddx, ddy) | Recherche de texture 3D. | 2¹ |
tex3Dbias | Recherche de texture 3D avec biais. | 2¹ |
tex3Dgrad | Recherche de texture 3D avec un dégradé. | 2¹ |
tex3Dlod | Recherche de texture 3D avec niveau de détail (LOD). | 3¹ |
tex3Dproj | Recherche de texture 3D avec division projective. | 2¹ |
texCUBE(s, t) | Recherche de texture de cube. | 1¹ |
texCUBE(s, t, ddx, ddy) | Recherche de texture de cube. | 2¹ |
texCUBEbias | Recherche de texture de cube avec biais. | 2¹ |
texCUBEgrad | Recherche de texture de cube avec un dégradé. | 2¹ |
texCUBElod | Recherche de texture de cube avec niveau de détail (LOD). | 3¹ |
texCUBEproj | Recherche de texture de cube avec division projective. | 2¹ |
transpose | Retourne la transpose de la matrice m. | 1 |
trunc | Tronque la ou les valeurs à virgule flottante en valeurs entières | 1 |
¹ reportez-vous à la page de référence pour connaître les restrictions.
Types de composants et de modèles
Les déclarations de fonction intrinsèque HLSL utilisent des types de composants et de modèles pour les arguments de paramètre d'entrée et les valeurs de retour. Les types disponibles sont répertoriés dans le tableau suivant.
Ces types de modèles | Description | Prendre en charge ces types de données |
---|---|---|
matrice | jusqu'à 16 composants en fonction de la déclaration | Types HLSL de base |
object | objet de l'échantillonneur | sampler, sampler1D, sampler2D, sampler3D, samplerCUBE |
scalaire | 1 composant | Types HLSL de base |
vecteur | 1 composant minimum, 4 composants maximum (inclus) | Types HLSL de base |
Voir aussi