Share via


Função TraceRay

Envia um raio para uma pesquisa de ocorrências em uma estrutura de aceleração.

Sintaxe

Essa definição de função intrínseca é equivalente ao seguinte modelo de função:

Template<payload_t>
void TraceRay(RaytracingAccelerationStructure AccelerationStructure,
              uint RayFlags,
              uint InstanceInclusionMask,
              uint RayContributionToHitGroupIndex,
              uint MultiplierForGeometryContributionToHitGroupIndex,
              uint MissShaderIndex,
              RayDesc Ray,
              inout payload_t Payload);

Parâmetros

AccelerationStructure

A estrutura de aceleração de nível superior a ser usada. Especificar uma estrutura de aceleração NULL força uma falha.

RayFlags

Combinação válida de valores de ray_flag . Somente sinalizadores de raio definidos são propagados pelo sistema, ou seja, são visíveis para o sombreador RayFlags intrínseco .

InstanceInclusionMask

Um inteiro sem sinal, os 8 bits inferiores dos quais são usados para incluir ou rejeitar instâncias de geometria com base no InstanceMask em cada instância. Por exemplo:

if(!((InstanceInclusionMask & InstanceMask) & 0xff)) { //ignore intersection }

RayContributionToHitGroupIndex

Um inteiro sem sinal que especifica o deslocamento a ser adicionado ao endereçamento de cálculos em tabelas de sombreador para indexação de grupo de ocorrências. Somente os 4 bits inferiores desse valor são usados.

MultiplierForGeometryContributionToHitGroupIndex

Um inteiro sem sinal que especifica o passo a ser multiplicado por GeometryContributionToHitGroupIndex, que é apenas o índice baseado em 0 que a geometria foi fornecida pelo aplicativo em sua estrutura de aceleração de nível inferior. Somente os 16 bits inferiores desse valor multiplicador são usados.

MissShaderIndex

Um inteiro sem sinal que especifica o índice do sombreador de erro dentro de uma tabela de sombreador.

Ray

Um RayDesc que representa o raio a ser rastreado.

Payload

Uma carga de raio definida pelo usuário acessada tanto para entrada quanto para saída por sombreadores invocados durante o raytracing. Depois que TraceRay for concluído, o chamador também poderá acessar o conteúdo.

Valor Retornado

void

Comentários

Essa função pode ser chamada dos seguintes tipos de sombreador de raytracing:

Confira também

Referência HLSL de raytracing do Direct3D 12