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).
acos Devuelve el arcocoseno de cada componente de x.
all Prueba si todos los componentes de x son distintos de cero.
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.
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.
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.
atan2 Devuelve el arcotangente de dos valores (x, y).
ceil Devuelve el entero más pequeño que es mayor que o igual a x.
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.].
clip Descarta el píxel actual, si algún componente de x es menor que cero.
cos Devuelve el coseno de x.
cosh Devuelve el coseno hiperbólico de x.
countbits Cuenta el número de bits (por componente) en el entero de entrada. 5
cross Devuelve el producto cruzado de dos vectores 3D.
D3DCOLORtoUBYTE4 Mezcla y modifica la escala de componentes del vector x 4D para compensar la falta de soporte UBYTE4 en algún hardware.
ddx Devuelve la derivada parcial de x con respecto a la coordenada x del espacio de la pantalla.
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.
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.
determinant Devuelve el determinante de la matriz cuadrada m.
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.
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.
exp2 Exponente con base 2 (por componente).
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)).
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.
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.
frac Devuelve la parte fraccionaria de x.
frexp Devuelve la mantisa y el exponente de x.
fwidth Devuelve abs(ddx(x)) + abs(ddy(x))
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.
isinf Devuelve true si x es +INF o -INF; false en caso contrario.
isnan Devuelve true si x es NAN o QNAN; false en caso contrario.
ldexp Devuelve x * 2exp
length Devuelve la longitud del vector v.
lerp Devuelve x + s(y - x).
lit Devuelve un vector de iluminación (ambiente, difuso, especular, 1)
log Devuelve el logaritmo con base-e de x.
log10 Devuelve el logaritmo con base-10 de x.
log2 Devuelve el logaritmo con base-2 de x.
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.
min Selecciona el menor entre x y y.
modf Divide el valor x en partes fraccionales y enteras.
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.
normalize Devuelve un vector normalizado.
pow Devuelve xy.
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.
reversebits Invierte el orden de los bits, por componente. 5
round Redondea x al entero más próximo.
rsqrt Devuelve 1 / sqrt(x)
saturate Fija x al rango [0, 1] 1
sign Calcula el signo de x.
sin Devuelve el seno de x.
sincos Devuelve el seno y coseno de x.
sinh Devuelve el seno hiperbólico de x.
smoothstep Devuelve una interpolación de Hermite suave entre 0 y 1.
sqrt Raíz cuadrada (por componente)
step Devuelve (x >= a) ? 1 : 0
tan Devuelve la tangente de x.
tanh Devuelve la tangente hiperbólica de x.
tex1D(s, t) Búsqueda de texturas 1D. 1
tex1D(s, t, ddx, ddy) Búsqueda de texturas 1D.
tex1Dbias Búsqueda de textura 1D con sesgo.
tex1Dgrad Búsqueda de textura 1D con un degradado.
tex1Dlod Búsqueda de textura 1D con LOD.
tex1Dproj Búsqueda de textura 1D con división proyectiva.
tex2D(s, t) Búsqueda de texturas 2D.
tex2D(s, t, ddx, ddy) Búsqueda de texturas 2D.
tex2Dbias Búsqueda de textura 2D con sesgo.
tex2Dgrad Búsqueda de textura 2D con un degradado.
tex2Dlod Búsqueda de textura 2D con LOD. 3
tex2Dproj Búsqueda de textura 2D con división proyectiva.
tex3D(s, t) Búsqueda de textura 3D.
tex3D(s, t, ddx, ddy) Búsqueda de textura 3D.
tex3Dbias Búsqueda de textura 3D con sesgo.
tex3Dgrad Búsqueda de textura 3D con un degradado.
tex3Dlod Búsqueda de textura 3D con LOD.
tex3Dproj Búsqueda de textura 3D con división proyectiva.
texCUBE(s, t) Búsqueda de textura de cubo.
texCUBE(s, t, ddx, ddy) Búsqueda de textura de cubo.
texCUBEbias Búsqueda de textura de cubo con sesgo.
texCUBEgrad Búsqueda de textura de cubo con un degradado.
texCUBElod Búsqueda de textura de cubo con LOD.
texCUBEproj Búsqueda de textura de cubo con división proyectiva.
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

Referencia de HLSL