Fonctions intrinsèques
Le tableau suivant répertorie les fonctions intrinsèques disponibles dans HLSL. Chaque fonction a une brève description et un lien vers une page de référence qui contient plus de détails sur l’argument d’entrée et le type de retour.
Nom | Description | Modèle de nuanceur minimal |
---|---|---|
Annuler | Met fin à l’appel de tirage ou de distribution en cours d’exécution. | 4 |
Abs | Valeur absolue (par composant). | 1¹ |
Acos | Retourne l’arccosine de chaque composant de x. | 1¹ |
Tous | Testez si tous les composants de x ne sont pas nuls. | 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 soient terminés et que tous les threads du groupe aient atteint cet appel. | 5 |
Tout | Testez si un composant de x est différent de zéro. | 1¹ |
asdouble | Réinterpréte une valeur castée en un double. | 5 |
asfloat | Convertissez le type d’entrée en float. | 4 |
Asin | Retourne l’arcsinus de chaque composant de x. | 1¹ |
asint | Convertissez le type d’entrée en entier. | 4 |
asuint | Réinterpréte le modèle de bits d’un type 64 bits en uint. | 5 |
asuint | Convertissez le type d’entrée en entier non signé. | 4 |
Atan | Retourne l’arctangente de x. | 1¹ |
atan2 | Retourne l’arctangent 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 vignettes mappées dans une ressource en mosaïque. | 5 |
Pince | Pince x à la plage [min, max]. | 1¹ |
capture | 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¹ |
countbits | 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 | Swizzles et met à l’échelle les composants du vecteur 4D xto compenser l’absence de prise en charge 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 un dérivé partiel de faible précision par rapport à la coordonnée x de l’espace écran. | 5 |
ddx_fine | Calcule un dérivé partiel 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 un dérivé partiel de faible précision par rapport à la coordonnée y de l’espace écran. | 5 |
ddy_fine | Calcule un dérivé partiel haute précision par rapport à la coordonnée y de l’espace d’écran. | 5 |
Degrés | Convertit x de radians en degrés. | 1¹ |
Déterminant | Retourne le déterminant de la matrice carrée m. | 1¹ |
DeviceMemoryBarrier | Bloque l’exécution de tous les threads dans 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 soient terminés et que tous les threads du groupe aient atteint cet appel. | 5 |
distance | Retourne la distance entre deux points. | 1¹ |
Point | 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 pixel. | 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 de base-e. | 1¹ |
exp2 | Exposant de base 2 (par composant). | 1¹ |
f16tof32 | Convertit le float16 stocké dans la moitié basse de l’uint en float. | 5 |
f32tof16 | Convertit une entrée en type float16. | 5 |
faceforward | Renvoie -n * sign(dot(i, ng)). | 1¹ |
firstbithigh | Obtient l’emplacement du premier bit défini à partir du bit de commande le plus élevé et fonctionne à la baisse, par composant. | 5 |
firstbitlow | Retourne l’emplacement du premier bit défini en commençant par le bit de commande le plus bas et en travaillant vers le haut, par composant. | 5 |
Étage | Retourne le plus grand entier qui est inférieur ou égal à x. | 1¹ |
Fma | Retourne l’addition multipliée double précision d’un * b + c. | 5 |
fmod | Retourne le reste à virgule flottante de x/y. | 1¹ |
Frac | Retourne la partie fractionnelle de x. | 1¹ |
frexp | Retourne la mantissa et l’exposant de x. | 2¹ |
fwidth | Renvoie abs(ddx(x)) + abs(ddy(x)) | 2¹ |
GetRenderTargetSampleCount | Retourne le nombre d’exemples de cible de rendu. | 4 |
GetRenderTargetSamplePosition | Retourne un exemple de position (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 de valeur à la variable de ressource dést. | 5 |
InterlockedAnd | Effectue un atomique garanti et. | 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 à dést et retourne la valeur d’origine. | 5 |
InterlockedMax | Effectue un max atomique garanti. | 5 |
InterlockedMin | Effectue une min atomique garantie. | 5 |
InterlockedOr | Effectue un atomique garanti ou. | 5 |
InterlockedXor | Effectue un xor atomique garanti. | 5 |
isfinite | Retourne true si x est fini, false sinon. | 1¹ |
isinf | Retourne true si x est +INF ou -INF, false sinon. | 1¹ |
isnan | Renvoie la valeur true si x est NAN ou QNAN, false sinon. | 1¹ |
ldexp | Retourne x * 2exp | 1¹ |
Longueur | Retourne la longueur du vecteur v. | 1¹ |
lerp | Renvoie x + s(y - x). | 1¹ |
Allumé | Retourne un vecteur d’éclairage (ambiante, diffuse, speculaire, 1) | 1¹ |
rapport | 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¹ |
Fou | 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¹ |
minute(s) | Sélectionne la valeur inférieure de x et y. | 1¹ |
modf | Fractionne la valeur x en parties fractionnelles et entières. | 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 une multiplication de matrice à l’aide de x et y. | 1 |
Bruit | 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 | Envoie un message de nuanceur personnalisé à la file d’attente d’informations. | 4 |
Process2DQuadTessFactorsAvg | Génère les facteurs de téssellation corrigés pour un correctif quad. | 5 |
Process2DQuadTessFactorsMax | Génère les facteurs de téssellation corrigés pour un correctif quad. | 5 |
Process2DQuadTessFactorsMin | Génère les facteurs de téssellation corrigés pour un correctif quad. | 5 |
ProcessIsolineTessFactors | Génère les facteurs de tssellation arrondis pour une isoline. | 5 |
ProcessQuadTessFactorsAvg | Génère les facteurs de téssellation corrigés pour un correctif quad. | 5 |
ProcessQuadTessFactorsMax | Génère les facteurs de téssellation corrigés pour un correctif quad. | 5 |
ProcessQuadTessFactorsMin | Génère les facteurs de téssellation corrigés pour un correctif quad. | 5 |
ProcessTriTessFactorsAvg | Génère les facteurs de téssellation corrigés pour un correctif tri. | 5 |
ProcessTriTessFactorsMax | Génère les facteurs de téssellation corrigés pour un correctif tri. | 5 |
ProcessTriTessFactorsMin | Génère les facteurs de téssellation 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 |
réfractaire | Retourne le vecteur de réfraction. | 1¹ |
reversebits | Inverse l’ordre des bits, par composant. | 5 |
Rond | Arrondit x à l’entier le plus proche | 1¹ |
rsqrt | Retourne 1 / sqrt(x) | 1¹ |
Saturer | Pince x à la plage [0, 1] | 1 |
Signe | Calcule le signe x. | 1¹ |
Péché | 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 hermite lisse comprise entre 0 et 1. | 1¹ |
Sqrt | Racine carrée (par composant) | 1¹ |
Étape | Retourne (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 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 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 LOD. | 3¹ |
texCUBEproj | Recherche de texture de cube avec division projective. | 2¹ |
Transposer | Retourne la transpose de la matrice m. | 1 |
Trunc | Tronque les valeurs à virgule flottante en valeurs entières | 1 |
¹ voir 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 des types 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 | sampler (objet) | 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