Funzioni intrinseche
Nella tabella seguente sono elencate le funzioni intrinseche disponibili in HLSL. Ogni funzione ha una breve descrizione e un collegamento a una pagina di riferimento con maggiori dettagli sull'argomento di input e sul tipo restituito.
Nome | Descrizione | Modello di shader minimo |
---|---|---|
abort | Termina l'esecuzione della chiamata di disegno o dispatch corrente. | 4 |
abs | Valore assoluto (per componente). | 1¹ |
acos | Restituisce l'arcocosina di ogni componente di x. | 1¹ |
tutto | Verificare se tutti i componenti di x sono diversi da zero. | 1¹ |
AllMemoryBarrier | Blocca l'esecuzione di tutti i thread in un gruppo fino al completamento di tutti gli accessi alla memoria. | 5 |
AllMemoryBarrierWithGroupSync | Blocca l'esecuzione di tutti i thread in un gruppo fino a quando non sono stati completati tutti gli accessi alla memoria e tutti i thread nel gruppo hanno raggiunto questa chiamata. | 5 |
qualsiasi | Verificare se un componente di x è diverso da zero. | 1¹ |
asdouble | Reinterpreta un valore di cast in un valore double. | 5 |
asfloat | Convertire il tipo di input in un tipo float. | 4 |
asin | Restituisce l'arcosine di ogni componente di x. | 1¹ |
asint | Convertire il tipo di input in un numero intero. | 4 |
asuint | Reinterpreta il modello di bit di un tipo a 64 bit in un uint. | 5 |
asuint | Convertire il tipo di input in un intero senza segno. | 4 |
atan | Restituisce l'arcotangente di x. | 1¹ |
atan2 | Restituisce l'arcotangente di due valori (x,y). | 1¹ |
ceil | Restituisce l'intero più piccolo maggiore o uguale a x. | 1¹ |
CheckAccessFullyMapped | Determina se tutti i valori di un'operazione Sample o Load hanno eseguito l'accesso ai riquadri mappati in una risorsa affiancata. | 5 |
Morsetto | Blocca x all'intervallo [min, max]. | 1¹ |
clip | Rimuove il pixel corrente, se un componente di x è minore di zero. | 1¹ |
cos | Restituisce il coseno di x. | 1¹ |
cosh | Restituisce il coseno iperbolico di x. | 1¹ |
countbit | Conta il numero di bit (per componente) nell'intero di input. | 5 |
Croce | Restituisce il prodotto incrociato di due vettori 3D. | 1¹ |
D3DCOLORtoUBYTE4 | Swizzles e scale componenti del vettore 4D xto compensare la mancanza di supporto UBYTE4 in alcuni hardware. | 1¹ |
Ddx | Restituisce la derivata parziale di x rispetto alla coordinata x dello spazio dello schermo. | 2¹ |
ddx_coarse | Calcola una derivata parziale a bassa precisione rispetto alla coordinata x-spazio dello schermo. | 5 |
ddx_fine | Calcola una derivata parziale ad alta precisione rispetto alla coordinata x dello spazio dello schermo. | 5 |
fangoso | Restituisce la derivata parziale di x rispetto alla coordinata y dello spazio dello schermo. | 2¹ |
ddy_coarse | Calcola una derivata parziale a bassa precisione rispetto alla coordinata y dello spazio dello schermo. | 5 |
ddy_fine | Calcola una derivata parziale ad alta precisione rispetto alla coordinata y dello spazio dello schermo. | 5 |
Gradi | Converte x da radianti a gradi. | 1¹ |
Determinante | Restituisce il determinante della matrice quadrata m. | 1¹ |
DeviceMemoryBarrier | Blocca l'esecuzione di tutti i thread in un gruppo fino al completamento di tutti gli accessi alla memoria del dispositivo. | 5 |
DeviceMemoryBarrierWithGroupSync | Blocca l'esecuzione di tutti i thread in un gruppo fino a quando non sono stati completati tutti gli accessi alla memoria del dispositivo e tutti i thread del gruppo hanno raggiunto questa chiamata. | 5 |
distance | Restituisce la distanza tra due punti. | 1¹ |
punto | Restituisce il prodotto scalare di due vettori. | 1 |
Dst | Calcola un vettore di distanza. | 5 |
errorf | Invia un messaggio di errore alla coda di informazioni. | 4 |
EvaluateAttributeCentroid | Valuta il centroide pixel. | 5 |
EvaluateAttributeAtSample | Valuta in corrispondenza della posizione di esempio indicizzata. | 5 |
EvaluateAttributeSnapped | Valuta il centro del pixel con un offset. | 5 |
exp | Restituisce l'esponente di base e. | 1¹ |
exp2 | Esponente base 2 (per componente). | 1¹ |
f16tof32 | Converte il valore float16 archiviato nella metà bassa dell'oggetto uint in un valore float. | 5 |
f32tof16 | Converte un input in un tipo float16. | 5 |
faceforward | Restituisce -n * sign(dot(i, ng)). | 1¹ |
firstbithigh | Ottiene la posizione del primo bit impostato a partire dal bit dell'ordine più alto e funziona verso il basso, per componente. | 5 |
firstbitlow | Restituisce la posizione del primo bit impostato a partire dal bit dell'ordine più basso e funziona verso l'alto, per componente. | 5 |
floor | Restituisce l'intero più grande minore o uguale a x. | 1¹ |
fma | Restituisce l'aggiunta a precisione doppia di un oggetto * b + c. | 5 |
fmod | Restituisce il resto a virgola mobile di x/y. | 1¹ |
Frac | Restituisce la parte frazionaria di x. | 1¹ |
frexp | Restituisce la mantissa e l'esponente di x. | 2¹ |
fwidth | Restituisce abs(ddx(x)) + abs(ddy(x)) | 2¹ |
GetRenderTargetSampleCount | Restituisce il numero di campioni di destinazione di rendering. | 4 |
GetRenderTargetSamplePosition | Restituisce una posizione di esempio (x,y) per un determinato indice di esempio. | 4 |
GroupMemoryBarrier | Blocca l'esecuzione di tutti i thread in un gruppo fino al completamento di tutti gli accessi condivisi di gruppo. | 5 |
GroupMemoryBarrierWithGroupSync | Blocca l'esecuzione di tutti i thread in un gruppo fino a quando non sono stati completati tutti gli accessi condivisi di gruppo e tutti i thread nel gruppo hanno raggiunto questa chiamata. | 5 |
InterlockedAdd | Esegue un'aggiunta atomica garantita di valore alla variabile di risorsa dest. | 5 |
InterlockedAnd | Esegue un atomico garantito e . | 5 |
InterlockedCompareExchange | Confronta in modo atomico l'input con il valore di confronto e scambia il risultato. | 5 |
InterlockedCompareStore | Confronta in modo atomico l'input con il valore di confronto. | 5 |
InterlockedExchange | Assegna il valore a dest e restituisce il valore originale. | 5 |
InterlockedMax | Esegue un numero massimo atomico garantito. | 5 |
InterlockedMin | Esegue un min atomico garantito. | 5 |
InterlockedOr | Esegue un atomico garantito o . | 5 |
InterlockedXor | Esegue un xor atomico garantito. | 5 |
isfinite | Restituisce true se x è finito, false in caso contrario. | 1¹ |
isinf | Restituisce true se x è +INF o -INF; in caso contrario, false. | 1¹ |
isnan | Restituisce true se x è NAN o QNAN, false in caso contrario. | 1¹ |
ldexp | Restituisce x * 2exp | 1¹ |
length | Restituisce la lunghezza del vettore v. | 1¹ |
lerp | Restituisce x + s(y - x). | 1¹ |
Illuminato | Restituisce un vettore di illuminazione (ambiente, diffuso, speculare, 1) | 1¹ |
log | Restituisce il logaritmo di base e di x. | 1¹ |
log10 | Restituisce il logaritmo di base 10 di x. | 1¹ |
log2 | Restituisce il logaritmo di base 2 di x. | 1¹ |
matto | Esegue un'operazione di moltiplicazione/aggiunta aritmetica su tre valori. | 5 |
max | Seleziona il valore maggiore di x e y. | 1¹ |
min | Seleziona il minore di x e y. | 1¹ |
modf | Suddivide il valore x in parti frazionarie e intere. | 1¹ |
msad4 | Confronta un valore di riferimento a 4 byte e un valore di origine a 8 byte e accumula un vettore di 4 somme. | 5 |
mul | Esegue la moltiplicazione della matrice usando x e y. | 1 |
Rumore | Genera un valore casuale usando l'algoritmo Perlin-noise. | 1¹ |
Normalizzare | Restituisce un vettore normalizzato. | 1¹ |
pow | Restituisce xy. | 1¹ |
printf | Invia un messaggio di shader personalizzato alla coda di informazioni. | 4 |
Process2DQuadTessFactorsAvg | Genera i fattori di tassellatura corretti per una patch quad. | 5 |
Process2DQuadTessFactorsMax | Genera i fattori di tassellatura corretti per una patch quad. | 5 |
Process2DQuadTessFactorsMin | Genera i fattori di tassellatura corretti per una patch quad. | 5 |
ProcessIsolineTessFactors | Genera i fattori di tassellatura arrotondati per una isoline. | 5 |
ProcessQuadTessFactorsAvg | Genera i fattori di tassellatura corretti per una patch quad. | 5 |
ProcessQuadTessFactorsMax | Genera i fattori di tassellatura corretti per una patch quad. | 5 |
ProcessQuadTessFactorsMin | Genera i fattori di tassellatura corretti per una patch quad. | 5 |
ProcessTriTessFactorsAvg | Genera i fattori di tassellatura corretti per una patch tri. | 5 |
ProcessTriTessFactorsMax | Genera i fattori di tassellatura corretti per una patch tri. | 5 |
ProcessTriTessFactorsMin | Genera i fattori di tassellatura corretti per una patch tri. | 5 |
Radianti | Converte x da gradi a radianti. | 1 |
rcp | Calcola un reciproco rapido, approssimativo, per componente. | 5 |
Riflettere | Restituisce un vettore di reflection. | 1 |
refract | Restituisce il vettore di rifrazione. | 1¹ |
reversebit | Inverte l'ordine dei bit, per componente. | 5 |
round | Arrotonda x all'intero più vicino | 1¹ |
rsqrt | Restituisce 1/sqrt(x) | 1¹ |
Saturare | Blocca x all'intervallo [0, 1] | 1 |
sign | Calcola il segno di x. | 1¹ |
sin | Restituisce il seno di x | 1¹ |
Sincos | Restituisce il seno e il coseno di x. | 1¹ |
sinh | Restituisce il seno iperbolico di x | 1¹ |
smussato | Restituisce un'interpolazione emite uniforme tra 0 e 1. | 1¹ |
sqrt | Radice quadrata (per componente) | 1¹ |
Passo | Restituisce (x >= a) ? 1 : 0 | 1¹ |
tan | Restituisce la tangente di x | 1¹ |
tanh | Restituisce la tangente iperbolica di x | 1¹ |
tex1D,t | Ricerca di trame 1D. | 1 |
tex1D(s, t, ddx, ddy) | Ricerca di trame 1D. | 2¹ |
tex1Dbias | Ricerca di trame 1D con distorsione. | 2¹ |
tex1Dgrad | Ricerca di trame 1D con una sfumatura. | 2¹ |
tex1Dlod | Ricerca di trame 1D con LOD. | 3¹ |
tex1Dproj | Ricerca di trame 1D con divisione proiettata. | 2¹ |
tex2D(s, t) | Ricerca di trame 2D. | 1¹ |
tex2D(s, t, ddx, ddy) | Ricerca di trame 2D. | 2¹ |
tex2Dbias | Ricerca di trame 2D con distorsione. | 2¹ |
tex2Dgrad | Ricerca di trame 2D con una sfumatura. | 2¹ |
tex2Dlod | Ricerca di trame 2D con LOD. | 3 |
tex2Dproj | Ricerca di trame 2D con divisione proiettata. | 2¹ |
tex3D(s, t) | Ricerca di trame 3D. | 1¹ |
tex3D(s, t, ddx, ddy) | Ricerca di trame 3D. | 2¹ |
tex3Dbias | Ricerca di trame 3D con distorsione. | 2¹ |
tex3Dgrad | Ricerca di trame 3D con una sfumatura. | 2¹ |
tex3Dlod | Ricerca di trame 3D con LOD. | 3¹ |
tex3Dproj | Ricerca di trame 3D con divisione proiettata. | 2¹ |
texCUBE(s, t) | Ricerca trama cubo. | 1¹ |
texCUBE(s, t, ddx, ddy) | Ricerca trama cubo. | 2¹ |
texCUBEbias | Ricerca della trama del cubo con distorsione. | 2¹ |
texCUBEgrad | Ricerca della trama del cubo con una sfumatura. | 2¹ |
texCUBElod | Ricerca della trama del cubo con LOD. | 3¹ |
texCUBEproj | Ricerca della trama del cubo con divisione proiettata. | 2¹ |
Recepire | Restituisce la trasposizione della matrice m. | 1 |
trunc | Tronca i valori a virgola mobile a valori interi | 1 |
¹ vedere la pagina di riferimento per le restrizioni.
Tipi di componenti e modelli
Le dichiarazioni di funzioni intrinseche HLSL usano tipi di componente e tipi di modello per gli argomenti dei parametri di input e i valori restituiti. I tipi disponibili sono elencati nella tabella seguente.
Questi tipi di modello | Descrizione | Supportare questi tipi di dati |
---|---|---|
matrice | fino a 16 componenti a seconda della dichiarazione | Tipi HLSL di base |
oggetto | oggetto sampler | sampler, sampler1D, sampler2D, sampler3D, samplerCUBE |
scalare | 1 componente | Tipi HLSL di base |
vector | Minimo 1 componente, massimo 4 componenti (inclusi) | Tipi HLSL di base |
Vedi anche