Funções intrínsecas

A tabela a seguir lista as funções intrínsecas disponíveis no HLSL. Cada função tem uma breve descrição e um link para uma página de referência que tem mais detalhes sobre o argumento de entrada e o tipo de retorno.

Nome Descrição Modelo mínimo de sombreador
abort Encerra a chamada de despacho ou sorteio atual que está sendo executada. 4
abs Valor absoluto (por componente).
acos Retorna o arco cosseno de cada componente de x.
all Testa se todos os componentes de x são diferentes de zero.
AllMemoryBarrier Bloqueia a execução de todos os threads em um grupo até que todos os acessos à memória sejam concluídos. 5
AllMemoryBarrierWithGroupSync Bloqueia a execução de todos os threads em um grupo até que todos os acessos à memória tenham sido concluídos e todos os threads no grupo tenham chegado a essa chamada. 5
qualquer Testa se algum componente de x é diferente de zero.
asdouble Reinterpreta um valor cast como um double. 5
asfloat Converta o tipo de entrada em um float. 4
asin Retorna o arco seno de cada componente de x.
asint Converte o tipo de entrada em um inteiro. 4
asuint Reinterpreta o padrão de bits de um tipo de 64 bits como um uint. 5
asuint Converte o tipo de entrada em um inteiro sem sinal. 4
atan Retorna o arco tangente de x.
atan2 Retorna o arco tangente de dois valores (x, y).
ceil Retorna o menor número inteiro que seja maior ou igual a x.
CheckAccessFullyMapped Determina se todos os valores de uma operação Sample ou Load acessaram blocos mapeados em um recurso em blocos. 5
clamp Fixa x no intervalo [min, max].
clip Descarta o pixel atual, se qualquer componente de x é menor que zero.
cos Retorna o cosseno de x.
cosh Retorna o cosseno hiperbólico de x.
countbits Conta o número de bits (por componente) no inteiro de entrada. 5
cross Retorna o produto cruzado de dois vetores 3D.
D3DCOLORtoUBYTE4 Faz swizzle e dimensiona componentes do vetor 4D para compensar a falta de suporte UBYTE4 em alguns hardwares.
ddx Retorna a derivada parcial de x em relação à coordenada x do espaço da tela.
ddx_coarse Calcula uma derivada parcial de baixa precisão em relação à coordenada x do espaço da tela. 5
ddx_fine Calcula uma derivada parcial de alta precisão em relação à coordenada x do espaço da tela. 5
ddy Retorna a derivada parcial de x em relação à coordenada y do espaço da tela.
ddy_coarse Calcula uma derivada parcial de baixa precisão em relação à coordenada y do espaço da tela. 5
ddy_fine Calcula uma derivada parcial de alta precisão em relação à coordenada y do espaço da tela. 5
degrees Converte x de radianos em graus.
determinant Retorna o determinante da matriz quadrada m.
DeviceMemoryBarrier Bloqueia a execução de todos os threads em um grupo até que todos os acessos à memória do dispositivo sejam concluídos. 5
DeviceMemoryBarrierWithGroupSync Bloqueia a execução de todos os threads em um grupo até que todos os acessos à memória do dispositivo tenham sido concluídos e todos os threads no grupo tenham chegado a essa chamada. 5
distance Retorna a distância entre dois pontos.
dot Retorna o produto escalar de dois vetores. 1
dst Calcula um vetor de distância. 5
errorf Envia uma mensagem de erro para a fila de informações. 4
EvaluateAttributeCentroid Realiza uma avaliação no centroide de pixel. 5
EvaluateAttributeAtSample Realiza uma avaliação no local da amostra indexada. 5
EvaluateAttributeSnapped Realiza uma avaliação no centroide de pixel com um deslocamento. 5
exp Retorna o expoente de base "e".
exp2 Expoente de base 2 (por componente).
f16tof32 Converte o float16 armazenado na metade inferior do uint em um float. 5
f32tof16 Converte uma entrada em um tipo float16. 5
faceforward Retorna -n * sign(dot(i, ng)).
firstbithigh Obtém o local do primeiro bit do conjunto, começando do bit de ordem mais alta e prosseguindo para baixo, por componente. 5
firstbitlow Retorna o local do primeiro bit do conjunto, começando do bit de ordem mais baixa e prosseguindo para cima, por componente. 5
floor Retorna o maior inteiro, que é menor ou igual a x.
fma Retorna a adição de multiplicação fundida de precisão dupla de um * b + c. 5
fmod Retorna o resto do ponto flutuante de x/y.
frac Retorna a parte fracionária de x.
frexp Retorna a mantissa e o expoente de x.
fwidth Retorna abs(ddx(x)) + abs(ddy(x))
GetRenderTargetSampleCount Retorna o número de amostras de destino de renderização. 4
GetRenderTargetSamplePosition Retorna uma posição de amostra (x,y) para um determinado índice de amostra. 4
GroupMemoryBarrier Bloqueia a execução de todos os threads em um grupo até que todos os acessos compartilhados do grupo sejam concluídos. 5
GroupMemoryBarrierWithGroupSync Bloqueia a execução de todos os threads em um grupo até que todos os acessos compartilhados do grupo tenham sido concluídos e todos os threads no grupo tenham chegado a essa chamada. 5
InterlockedAdd Executa uma adição atômica garantida de valor à variável de recurso dest. 5
InterlockedAnd Realiza um and atômico garantido. 5
InterlockedCompareExchange Compara atomicamente a entrada com o valor de comparação e troca o resultado. 5
InterlockedCompareStore Compara atomicamente a entrada ao valor de comparação. 5
InterlockedExchange Atribui um valor a dest e retorna o valor original. 5
InterlockedMax Realiza um max atômico garantido. 5
InterlockedMin Realiza um min atômico garantido. 5
InterlockedOr Realiza um or atômico garantido. 5
InterlockedXor Realiza um xor atômico garantido. 5
isfinite Retorna true se x é finito; caso contrário, retorna false.
isinf Retorna true se x é +INF ou -INF; caso contrário, retorna false.
isnan Retorna true se x é NAN ou QNAN; caso contrário, retorna false.
ldexp Retorna x * 2exp
length Retorna o comprimento do vetor v.
lerp Retorna x + s(y - x).
lit Retorna um vetor de iluminação (ambiente, difuso, especular, 1)
log Obtém o logaritmo de base "e" de x.
log10 Retorna o logaritmo de base 10 de x.
log2 Retorna o logaritmo de base 2 de x.
mad Executa uma operação de multiplicação/adição aritmética em três valores. 5
max Seleciona o maior entre x e y.
min Seleciona o menor entre x e y.
modf Divide o valor x em partes fracionárias e inteiras.
msad4 Compara um valor de referência de 4 bytes e um valor de origem de 8 bytes e acumula um vetor de 4 somas. 5
mul Realiza a multiplicação da matriz usando x e y. 1
noise Gera um valor aleatório usando o algoritmo de ruído de Perlin.
normalize Retorna um vetor normalizado.
pow Retorna xy.
printf Envia uma mensagem de sombreador personalizada para a fila de informações. 4
Process2DQuadTessFactorsAvg Gera os fatores de tesselação corrigidos para um patch quádruplo. 5
Process2DQuadTessFactorsMax Gera os fatores de tesselação corrigidos para um patch quádruplo. 5
Process2DQuadTessFactorsMin Gera os fatores de tesselação corrigidos para um patch quádruplo. 5
ProcessIsolineTessFactors Gera os fatores de tesselação arredondados para uma isolinhagem. 5
ProcessQuadTessFactorsAvg Gera os fatores de tesselação corrigidos para um patch quádruplo. 5
ProcessQuadTessFactorsMax Gera os fatores de tesselação corrigidos para um patch quádruplo. 5
ProcessQuadTessFactorsMin Gera os fatores de tesselação corrigidos para um patch quádruplo. 5
ProcessTriTessFactorsAvg Gera os fatores de tesselação corrigidos para um patch triplo. 5
ProcessTriTessFactorsMax Gera os fatores de tesselação corrigidos para um patch triplo. 5
ProcessTriTessFactorsMin Gera os fatores de tesselação corrigidos para um patch triplo. 5
radians Converte x de graus em radianos. 1
rcp Calcula uma recíproca rápida, aproximada, por componente. 5
reflect Retorna um vetor de reflexão. 1
refract Retorna o vetor de refração.
reversebits Inverte a ordem dos bits, por componente. 5
round Arredonda x para o número inteiro mais próximo
rsqrt Retorna 1/sqrt(x)
saturate Fixa x no intervalo [0, 1] 1
sign Calcula o sinal de x.
sin Retorna o seno de x
sincos Retorna o seno e cosseno de x.
sinh Retorna o seno hiperbólico de x
smoothstep Retorna uma interpolação de Hermite suave entre 0 e 1.
sqrt Raiz quadrada (por componente)
step Retorna (x >= a) ? 1 : 0
tan Retorna a tangente de x
tanh Retorna a tangente hiperbólica de x
tex1D(s, t) Pesquisa de textura 1D. 1
tex1D(s, t, ddx, ddy) Pesquisa de textura 1D.
tex1Dbias Pesquisa de textura 1D com viés.
tex1Dgrad Pesquisa de textura 1D com um gradiente.
tex1Dlod Pesquisa de textura 1D com nível de detalhe.
tex1Dproj Pesquisa de textura 1D com divisão projetiva.
tex2D(s, t) Pesquisa de textura 2D.
tex2D(s, t, ddx, ddy) Pesquisa de textura 2D.
tex2Dbias Pesquisa de textura 2D com viés.
tex2Dgrad Pesquisa de textura 2D com um gradiente.
tex2Dlod Pesquisa de textura 2D com nível de detalhe. 3
tex2Dproj Pesquisa de textura 2D com divisão projetiva.
tex3D(s, t) Pesquisa de textura 3D.
tex3D(s, t, ddx, ddy) Pesquisa de textura 3D.
tex3Dbias Pesquisa de textura 3D com viés.
tex3Dgrad Pesquisa de textura 3D com um gradiente.
tex3Dlod Pesquisa de textura 3D com nível de detalhe.
tex3Dproj Pesquisa de textura 3D com divisão projetiva.
texCUBE(s, t) Pesquisa de textura de cubo.
texCUBE(s, t, ddx, ddy) Pesquisa de textura de cubo.
texCUBEbias Pesquisa de textura de cubo com viés.
texCUBEgrad Pesquisa de textura de cubo com um gradiente.
texCUBElod Pesquisa de textura de cubo com nível de detalhe.
texCUBEproj Pesquisa de textura de cubo com divisão projetiva.
transpose Retorna a transposição da matriz m. 1
trunc Trunca valores de ponto flutuante para valores inteiros 1

 

¹ Consulte a página de referência para restrições.

Tipos de componente e de modelo

As declarações de função intrínseca HLSL usam tipos de componente e tipos de modelo para argumentos de parâmetro de entrada e valores de retorno. Essas propriedades disponíveis estão listadas na tabela a seguir.

Estes tipos de modelo Descrição Dão suporte a estes tipos de dados
matriz até 16 componentes, dependendo da declaração Tipos HLSL básicos
objeto objeto sampler sampler, sampler1D, sampler2D, sampler3D, samplerCUBE
escalar 1 componente Tipos HLSL básicos
vector Mínimo de 1 componente, máximo de 4 componentes (inclusive) Tipos HLSL básicos

 

Confira também

Referência para HLSL