Funciones intrínsecas
En la tabla siguiente, se enumeran las funciones intrínsecas disponibles en HLSL. Cada función tiene una breve descripción y un vínculo a una página de referencia que incluye más detalles sobre el argumento de entrada y el tipo de valor devuelto.
Nombre | Descripción | Modelo de sombreador mínimo |
---|---|---|
abort | Finaliza la llamada de dibujo o distribución actual que se está ejecutando. | 4 |
abs | Valor absoluto (por componente). | 1¹ |
acos | Devuelve el arcocoseno de cada componente de x. | 1¹ |
all | Prueba si todos los componentes de x son distintos de cero. | 1¹ |
AllMemoryBarrier | Bloquea la ejecución de todos los subprocesos de un grupo hasta que se hayan completado todos los accesos a la memoria. | 5 |
AllMemoryBarrierWithGroupSync | Bloquea la ejecución de todos los subprocesos de un grupo hasta que se hayan completado todos los accesos a la memoria y todos los subprocesos en el grupo hayan alcanzado esta llamada. | 5 |
cualquiera | Prueba si algún componente de x es distinto de cero. | 1¹ |
asdouble | Reinterpreta un valor convertido en un doble. | 5 |
asfloat | Convierte el tipo de entrada en un valor flotante. | 4 |
asin | Devuelve el arcoseno de cada componente de x. | 1¹ |
asint | Convierte el tipo de entrada en un entero. | 4 |
asuint | Reinterpreta el patrón de bits de un tipo de 64 bits en un entero sin signo. | 5 |
asuint | Convierte el tipo de entrada en un entero sin signo. | 4 |
atan | Devuelve el arcotangente de x. | 1¹ |
atan2 | Devuelve el arcotangente de dos valores (x, y). | 1¹ |
ceil | Devuelve el entero más pequeño que es mayor que o igual a x. | 1¹ |
CheckAccessFullyMapped | Determina si todos los valores de una operación de muestra o carga a la que se ha accedido asignó mosaicos en un recurso en mosaico. | 5 |
clamp | Fija x al rango [mín., máx.]. | 1¹ |
clip | Descarta el píxel actual, si algún componente de x es menor que cero. | 1¹ |
cos | Devuelve el coseno de x. | 1¹ |
cosh | Devuelve el coseno hiperbólico de x. | 1¹ |
countbits | Cuenta el número de bits (por componente) en el entero de entrada. | 5 |
cross | Devuelve el producto cruzado de dos vectores 3D. | 1¹ |
D3DCOLORtoUBYTE4 | Mezcla y modifica la escala de componentes del vector x 4D para compensar la falta de soporte UBYTE4 en algún hardware. | 1¹ |
ddx | Devuelve la derivada parcial de x con respecto a la coordenada x del espacio de la pantalla. | 2¹ |
ddx_coarse | Calcula una derivada parcial de baja precisión con respecto a la coordenada x del espacio de la pantalla. | 5 |
ddx_fine | Calcula una derivada parcial de alta precisión con respecto a la coordenada x del espacio de la pantalla. | 5 |
ddy | Devuelve la derivada parcial de x con respecto a la coordenada y del espacio de la pantalla. | 2¹ |
ddy_coarse | Calcula una derivada parcial de baja precisión con respecto a la coordenada y del espacio de la pantalla. | 5 |
ddy_fine | Calcula una derivada parcial de alta precisión con respecto a la coordenada y del espacio de la pantalla. | 5 |
degrees | Convierte x de radianes a grados. | 1¹ |
determinant | Devuelve el determinante de la matriz cuadrada m. | 1¹ |
DeviceMemoryBarrier | Bloquea la ejecución de todos los subprocesos de un grupo hasta que se hayan completado todos los accesos a la memoria del dispositivo. | 5 |
DeviceMemoryBarrierWithGroupSync | Bloquea la ejecución de todos los subprocesos de un grupo hasta que se hayan completado todos los accesos a la memoria del dispositivo y todos los subprocesos en el grupo hayan alcanzado esta llamada. | 5 |
distance | Devuelve la distancia entre dos puntos. | 1¹ |
dot | Devuelve el producto escalar de dos vectores. | 1 |
dst | Calcula un vector de distancia. | 5 |
errorf | Envía un mensaje de error a la cola de información. | 4 |
EvaluateAttributeCentroid | Evalúa en el centroide de píxeles. | 5 |
EvaluateAttributeAtSample | Evalúa en la ubicación de ejemplo indexada. | 5 |
EvaluateAttributeSnapped | Evalúa en el centroide de píxeles con un desplazamiento. | 5 |
exp | Devuelve el exponente con base e. | 1¹ |
exp2 | Exponente con base 2 (por componente). | 1¹ |
f16tof32 | Convierte el valor float16 almacenado en la mitad baja de la uint en un valor flotante. | 5 |
f32tof16 | Convierte una entrada en un tipo float16. | 5 |
faceforward | Devuelve -n * sign(dot(i, ng)). | 1¹ |
firstbithigh | Obtiene la ubicación del primer bit establecido a partir del bit de orden más alto y hacia abajo, por componente. | 5 |
firstbitlow | Devuelve la ubicación del primer bit establecido a partir del bit de orden más bajo y hacia arriba, por componente. | 5 |
floor | Devuelve el entero más grande que es menor que o igual a x. | 1¹ |
fma | Devuelve la suma multiplicada fusionada de doble precisión de a * b + c. | 5 |
fmod | Devuelve el resto de punto flotante de x/y. | 1¹ |
frac | Devuelve la parte fraccionaria de x. | 1¹ |
frexp | Devuelve la mantisa y el exponente de x. | 2¹ |
fwidth | Devuelve abs(ddx(x)) + abs(ddy(x)) | 2¹ |
GetRenderTargetSampleCount | Devuelve el número de ejemplos de destino de representación. | 4 |
GetRenderTargetSamplePosition | Devuelve una posición de ejemplo (x,y) para un índice de ejemplo determinado. | 4 |
GroupMemoryBarrier | Bloquea la ejecución de todos los subprocesos de un grupo hasta que se hayan completado todos los accesos compartidos de grupo. | 5 |
GroupMemoryBarrierWithGroupSync | Bloquea la ejecución de todos los subprocesos de un grupo hasta que se hayan completado todos los accesos compartidos de grupo se hayan completado y todos los subprocesos en el grupo hayan alcanzado esta llamada. | 5 |
InterlockedAdd | Realiza un agregado atómico garantizado de valor a la variable de recurso dest. | 5 |
InterlockedAnd | Realiza un and atómico garantizado. | 5 |
InterlockedCompareExchange | Compara de forma atómica la entrada con el valor de comparación e intercambia el resultado. | 5 |
InterlockedCompareStore | Compara de forma atómica la entrada con el valor de comparación. | 5 |
InterlockedExchange | Asigna valor a dest y devuelve el valor original. | 5 |
InterlockedMax | Realiza un max atómico garantizado. | 5 |
InterlockedMin | Realiza un min atómico garantizado. | 5 |
InterlockedOr | Realiza un or atómico garantizado. | 5 |
InterlockedXor | Realiza un xor atómico garantizado. | 5 |
isfinite | Devuelve true si x es finito; false en caso contrario. | 1¹ |
isinf | Devuelve true si x es +INF o -INF; false en caso contrario. | 1¹ |
isnan | Devuelve true si x es NAN o QNAN; false en caso contrario. | 1¹ |
ldexp | Devuelve x * 2exp | 1¹ |
length | Devuelve la longitud del vector v. | 1¹ |
lerp | Devuelve x + s(y - x). | 1¹ |
lit | Devuelve un vector de iluminación (ambiente, difuso, especular, 1) | 1¹ |
log | Devuelve el logaritmo con base-e de x. | 1¹ |
log10 | Devuelve el logaritmo con base-10 de x. | 1¹ |
log2 | Devuelve el logaritmo con base-2 de x. | 1¹ |
mad | Realiza una operación de multiplicación o adición aritmética en tres valores. | 5 |
max | Selecciona el mayor entre x y y. | 1¹ |
min | Selecciona el menor entre x y y. | 1¹ |
modf | Divide el valor x en partes fraccionales y enteras. | 1¹ |
msad4 | Compara un valor de referencia de 4 bytes y un valor de origen de 8 bytes y acumula un vector de 4 sumas. | 5 |
mul | Realiza la multiplicación de matriz mediante x y y. | 1 |
noise | Genera un valor aleatorio mediante el algoritmo de ruido Perlin. | 1¹ |
normalize | Devuelve un vector normalizado. | 1¹ |
pow | Devuelve xy. | 1¹ |
printf | Envía un mensaje de sombreador personalizado a la cola de información. | 4 |
Process2DQuadTessFactorsAvg | Genera los factores de teselación corregidos para un parche cuádruple. | 5 |
Process2DQuadTessFactorsMax | Genera los factores de teselación corregidos para un parche cuádruple. | 5 |
Process2DQuadTessFactorsMin | Genera los factores de teselación corregidos para un parche cuádruple. | 5 |
ProcessIsolineTessFactors | Genera los factores de teselación redondeados para una isolínea. | 5 |
ProcessQuadTessFactorsAvg | Genera los factores de teselación corregidos para un parche cuádruple. | 5 |
ProcessQuadTessFactorsMax | Genera los factores de teselación corregidos para un parche cuádruple. | 5 |
ProcessQuadTessFactorsMin | Genera los factores de teselación corregidos para un parche cuádruple. | 5 |
ProcessTriTessFactorsAvg | Genera los factores de teselación corregidos para un parche triple. | 5 |
ProcessTriTessFactorsMax | Genera los factores de teselación corregidos para un parche triple. | 5 |
ProcessTriTessFactorsMin | Genera los factores de teselación corregidos para un parche triple. | 5 |
radians | Convierte x de grados a radianes. | 1 |
rcp | Calcula una recíproca rápida, aproximada y por componente. | 5 |
reflect | Devuelve un vector de reflejo. | 1 |
refract | Devuelve el vector de refracción. | 1¹ |
reversebits | Invierte el orden de los bits, por componente. | 5 |
round | Redondea x al entero más próximo. | 1¹ |
rsqrt | Devuelve 1 / sqrt(x) | 1¹ |
saturate | Fija x al rango [0, 1] | 1 |
sign | Calcula el signo de x. | 1¹ |
sin | Devuelve el seno de x. | 1¹ |
sincos | Devuelve el seno y coseno de x. | 1¹ |
sinh | Devuelve el seno hiperbólico de x. | 1¹ |
smoothstep | Devuelve una interpolación de Hermite suave entre 0 y 1. | 1¹ |
sqrt | Raíz cuadrada (por componente) | 1¹ |
step | Devuelve (x >= a) ? 1 : 0 | 1¹ |
tan | Devuelve la tangente de x. | 1¹ |
tanh | Devuelve la tangente hiperbólica de x. | 1¹ |
tex1D(s, t) | Búsqueda de texturas 1D. | 1 |
tex1D(s, t, ddx, ddy) | Búsqueda de texturas 1D. | 2¹ |
tex1Dbias | Búsqueda de textura 1D con sesgo. | 2¹ |
tex1Dgrad | Búsqueda de textura 1D con un degradado. | 2¹ |
tex1Dlod | Búsqueda de textura 1D con LOD. | 3¹ |
tex1Dproj | Búsqueda de textura 1D con división proyectiva. | 2¹ |
tex2D(s, t) | Búsqueda de texturas 2D. | 1¹ |
tex2D(s, t, ddx, ddy) | Búsqueda de texturas 2D. | 2¹ |
tex2Dbias | Búsqueda de textura 2D con sesgo. | 2¹ |
tex2Dgrad | Búsqueda de textura 2D con un degradado. | 2¹ |
tex2Dlod | Búsqueda de textura 2D con LOD. | 3 |
tex2Dproj | Búsqueda de textura 2D con división proyectiva. | 2¹ |
tex3D(s, t) | Búsqueda de textura 3D. | 1¹ |
tex3D(s, t, ddx, ddy) | Búsqueda de textura 3D. | 2¹ |
tex3Dbias | Búsqueda de textura 3D con sesgo. | 2¹ |
tex3Dgrad | Búsqueda de textura 3D con un degradado. | 2¹ |
tex3Dlod | Búsqueda de textura 3D con LOD. | 3¹ |
tex3Dproj | Búsqueda de textura 3D con división proyectiva. | 2¹ |
texCUBE(s, t) | Búsqueda de textura de cubo. | 1¹ |
texCUBE(s, t, ddx, ddy) | Búsqueda de textura de cubo. | 2¹ |
texCUBEbias | Búsqueda de textura de cubo con sesgo. | 2¹ |
texCUBEgrad | Búsqueda de textura de cubo con un degradado. | 2¹ |
texCUBElod | Búsqueda de textura de cubo con LOD. | 3¹ |
texCUBEproj | Búsqueda de textura de cubo con división proyectiva. | 2¹ |
transpose | Devuelve la transposición de la matriz m. | 1 |
trunc | Trunca los valores de punto flotante a valores enteros. | 1 |
¹ Consulte la página de referencia para las restricciones.
Tipos de componentes y plantillas
Las declaraciones de función intrínseca de HLSL usan tipos de componentes y tipos de plantilla para los argumentos de parámetros de entrada y los valores de devolución. Los tipos disponibles aparecen en la siguiente tabla.
Estos tipos de plantillas | Descripción | Admiten estos tipos de datos |
---|---|---|
matriz | hasta 16 componentes en función de la declaración | Tipos básicos de HLSL |
object | objeto sampler | sampler, sampler1D, sampler2D, sampler3D, samplerCUBE |
escalar | 1 componente | Tipos básicos de HLSL |
vector | 1 componente mínimo, 4 componentes máximo (inclusive) | Tipos básicos de HLSL |
Consulte también