Compartilhar via


estrutura D3D12_BUILD_RAYTRACING_ACCELERATION_STRUCTURE_DESC (d3d12.h)

Descreve uma estrutura de aceleração de raytracing. Passe essa estrutura para ID3D12GraphicsCommandList4::BuildRaytracingAccelerationStructure para descrever a estrutura de aceleração a ser criada.

Sintaxe

typedef struct D3D12_BUILD_RAYTRACING_ACCELERATION_STRUCTURE_DESC {
  D3D12_GPU_VIRTUAL_ADDRESS                            DestAccelerationStructureData;
  D3D12_BUILD_RAYTRACING_ACCELERATION_STRUCTURE_INPUTS Inputs;
  D3D12_GPU_VIRTUAL_ADDRESS                            SourceAccelerationStructureData;
  D3D12_GPU_VIRTUAL_ADDRESS                            ScratchAccelerationStructureData;
} D3D12_BUILD_RAYTRACING_ACCELERATION_STRUCTURE_DESC;

Membros

DestAccelerationStructureData

Local para armazenar a estrutura de aceleração resultante. ID3D12Device5::GetRaytracingAccelerationStructurePrebuildInfo relata a quantidade de memória necessária para o resultado aqui, dado um conjunto de parâmetros de build de estrutura de aceleração.

O endereço deve ser alinhado a 256 bytes, definidos como D3D12_RAYTRACING_ACCELERATION_STRUCTURE_BYTE_ALIGNMENT.

Importante

A memória deve estar no estado D3D12_RESOURCE_STATE_RAYTRACING_ACCELERATION_STRUCTURE.

Inputs

Descrição dos dados de entrada para o build da estrutura de aceleração. Esses dados são armazenados em uma estrutura separada porque também são usados com GetRaytracingAccelerationStructurePrebuildInfo.

SourceAccelerationStructureData

Endereço de uma estrutura de aceleração existente se uma atualização de estrutura de aceleração (um build incremental) estiver sendo solicitada, definindo D3D12_RAYTRACING_ACCELERATION_STRUCTURE_BUILD_FLAG_PERFORM_UPDATE no parâmetro Flags. Caso contrário, esse endereço deve ser NULL.

Se esse endereço for o mesmo que DestAccelerationStructureData, a atualização será executada in-loco. Qualquer outra forma de sobreposição da memória de origem e de destino é inválida e produz um comportamento indefinido.

O endereço deve ser alinhado a 256 bytes, definidos como D3D12_RAYTRACING_ACCELERATION_STRUCTURE_BYTE_ALIGNMENT, o que deve ser automaticamente o caso porque qualquer estrutura de aceleração existente passada aqui já teria sido necessária para ser colocada com esse alinhamento.

Importante

A memória deve estar no estado D3D12_RESOURCE_STATE_RAYTRACING_ACCELERATION_STRUCTURE.

ScratchAccelerationStructureData

Local em que o build armazenará dados temporários. GetRaytracingAccelerationStructurePrebuildInfo relata a quantidade de memória de zero que a implementação precisará para um determinado conjunto de parâmetros de build de estrutura de aceleração.

Importante

A memória deve estar no estado D3D12_RESOURCE_STATE_UNORDERED_ACCESS.

ScratchAccelerationStructureData

Requisitos

   
Cabeçalho d3d12.h