Pular para o conteúdo principal
Descreve uma instância de uma estrutura de aceleração de raytracing usada na memória da GPU durante o processo de build da estrutura de aceleração.

Sintaxe

Membros

Transform
Tipo: FLOAT[3][4]
Uma matriz de transformação 3x4 em layout de linha principal (row-major) que representa a transformação de instância para mundo. As implementações transformam os raios, em vez de transformar toda a geometria ou os AABBs.
O layout de Transform é uma transposição de como as matrizes afins normalmente são armazenadas na memória. Em vez de quatro vetores de 3 componentes, Transform é organizado como três vetores de 4 componentes.
InstanceID
Tipo: UINT
Um valor arbitrário de 24 bits que pode ser acessado usando a função intrínseca InstanceID nos tipos de sombreador com suporte. InstanceMask
Tipo: UINT
Uma máscara de 8 bits atribuída à instância, que pode ser usada para incluir/rejeitar grupos de instâncias por raio. Se o valor for zero, a instância nunca será incluída; portanto, normalmente ela deve ser definida como algum valor diferente de zero. Para obter mais informações, consulte o parâmetro InstanceInclusionMask da função TraceRay. InstanceContributionToHitGroupIndex
Tipo: UINT
Um valor arbitrário de 24 bits que representa a contribuição por instância a ser adicionada à indexação da tabela de sombreadores para selecionar o grupo de acertos a ser usado. Flags
Tipo: UINT
Uma máscara de 8 bits que representa os sinalizadores de D3D12_RAYTRACING_INSTANCE_FLAGS a serem aplicados à instância. AccelerationStructure
Tipo: D3D12_GPU_VIRTUAL_ADDRESS
Endereço da estrutura de aceleração de nível inferior que está sendo instanciada. O endereço deve estar alinhado a 256 bytes, definido como D3D12_RAYTRACING_ACCELERATION_STRUCTURE_BYTE_ALIGNMENT. Qualquer estrutura de aceleração existente passada aqui já precisaria ter sido posicionada com esse alinhamento. A memória apontada deve estar no estado D3D12_RESOURCE_STATE_RAYTRACING_ACCELERATION_STRUCTURE.

Comentários

Esta definição de struct C++ é útil se você estiver gerando os dados de instância primeiro na CPU e depois carregando-os na GPU. Mas seu aplicativo também pode gerar descrições de instância diretamente na memória da GPU (a partir de sombreadores de computação, por exemplo) seguindo o mesmo layout.

Requisitos

Cabeçalho: d3d12_xs.h
Biblioteca: d3d12_xs.lib
Plataformas com suporte: consoles XBOX Series
Última modificação em 6 de outubro de 2026