Pular para o conteúdo principal
Define as entradas para uma operação de criação de estrutura de aceleração de ray tracing. Essa estrutura é usada por ID3D12GraphicsCommandList4::BuildRaytracingAccelerationStructure e ID3D12Device5::GetRaytracingAccelerationStructurePrebuildInfo.

Sintaxe

Membros

Type
Tipo: D3D12_RAYTRACING_ACCELERATION_STRUCTURE_TYPE
O tipo de estrutura de aceleração a ser criada. Flags
Tipo: D3D12_RAYTRACING_ACCELERATION_STRUCTURE_BUILD_FLAGS
Os sinalizadores de criação. NumDescs
Tipo: UINT
Se Type for D3D12_RAYTRACING_ACCELERATION_STRUCTURE_TOP_LEVEL, esse valor será o número de instâncias, dispostas com base em DescsLayout. Se Type for D3D12_RAYTRACING_ACCELERATION_STRUCTURE_BOTTOM_LEVEL, esse valor será o número de elementos referenciados por pGeometryDescs ou ppGeometryDescs. Qual desses campos é usado depende de DescsLayout. DescsLayout
Tipo: D3D12_ELEMENTS_LAYOUT
Como as descrições de geometria são especificadas: uma matriz de descrições ou uma matriz de ponteiros para descrições. InstanceDescs
Tipo: D3D12_GPU_VIRTUAL_ADDRESS
Se Type for D3D12_RAYTRACING_ACCELERATION_STRUCTURE_TOP_LEVEL, isso se refere a NumDescs estruturas D3D12_RAYTRACING_INSTANCE_DESC na memória da GPU que descrevem instâncias. Cada instância deve estar alinhada a 16 bytes, definido como D3D12_RAYTRACING_INSTANCE_DESC_BYTE_ALIGNMENT. Se Type não for D3D12_RAYTRACING_ACCELERATION_STRUCTURE_TOP_LEVEL, esse parâmetro não será usado. Se DescLayout for D3D12_ELEMENTS_LAYOUT_ARRAY, InstanceDescs apontará para uma matriz de descrições de instâncias na memória da GPU. Se DescLayout for D3D12_ELEMENTS_LAYOUT_ARRAY_OF_POINTERS, InstanceDescs apontará para uma matriz na memória da GPU de ponteiros D3D12_GPU_VIRTUAL_ADDRESS para descrições de instâncias. A memória apontada deve estar no estado D3D12_RESOURCE_STATE_NON_PIXEL_SHADER_RESOURCE. pGeometryDescs
Tipo: const D3D12_RAYTRACING_GEOMETRY_DESC *
Se Type for D3D12_RAYTRACING_ACCELERATION_STRUCTURE_BOTTOM_LEVEL e DescsLayout for D3D12_ELEMENTS_LAYOUT_ARRAY, esse campo será usado e apontará para NumDescs estruturas D3D12_RAYTRACING_GEOMETRY_DESC contíguas na CPU, que descrevem geometrias individuais. Se Type não for D3D12_RAYTRACING_ACCELERATION_STRUCTURE_BOTTOM_LEVEL ou DescsLayout não for D3D12_ELEMENTS_LAYOUT_ARRAY, esse parâmetro não será usado. ppGeometryDescs
Tipo: const D3D12_RAYTRACING_GEOMETRY_DESC *const *
Se Type for D3D12_RAYTRACING_ACCELERATION_STRUCTURE_BOTTOM_LEVEL e DescsLayout for D3D12_ELEMENTS_LAYOUT_ARRAY_OF_POINTERS, esse campo será usado e apontará para uma matriz de NumDescs ponteiros para estruturas D3D12_RAYTRACING_GEOMETRY_DESC na CPU, que descrevem geometrias individuais.

Comentários

Quando usado com GetRaytracingAccelerationStructurePrebuildInfo, que na verdade realiza uma criação, qualquer parâmetro referenciado por meio de D3D12_GPU_VIRTUAL_ADDRESS (um endereço na memória da GPU), como InstanceDescs, não será acessado pela operação. Portanto, essa memória ainda não precisa ser inicializada nem estar em um estado de recurso específico. A operação pode verificar se os endereços de GPU são nulos ou não, mesmo que os ponteiros não sejam desreferenciados.

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