Поделиться через


структура D3D12_BUILD_RAYTRACING_ACCELERATION_STRUCTURE_DESC (d3d12.h)

Описывает структуру ускорения луча. Передайте эту структуру в ID3D12GraphicsCommandList4::BuildRaytracingAccelerationStructure , чтобы описать структуру ускорения, которая должна быть построена.

Синтаксис

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;

Члены

DestAccelerationStructureData

Расположение для хранения итоговой структуры ускорения. ID3D12Device5::GetRaytracingAccelerationStructurePrebuildInfo сообщает объем памяти, необходимый для результата, с учетом набора параметров сборки структуры ускорения.

Адрес должен быть выровнен по 256 байтам, определенным как D3D12_RAYTRACING_ACCELERATION_STRUCTURE_BYTE_ALIGNMENT.

Важно!

Память должна находиться в состоянии D3D12_RESOURCE_STATE_RAYTRACING_ACCELERATION_STRUCTURE.

Inputs

Описание входных данных для сборки структуры ускорения. Эти данные хранятся в отдельной структуре, так как они также используются с GetRaytracingAccelerationStructurePrebuildInfo.

SourceAccelerationStructureData

Адрес существующей структуры ускорения, если запрашивается обновление структуры ускорения (добавочная сборка), задав D3D12_RAYTRACING_ACCELERATION_STRUCTURE_BUILD_FLAG_PERFORM_UPDATE в параметре Flags. В противном случае этот адрес должен иметь значение NULL.

Если этот адрес совпадает с адресом DestAccelerationStructureData, обновление должно выполняться на месте. Любая другая форма перекрытия исходной и целевой памяти является недопустимой и приводит к неопределенному поведению.

Адрес должен быть выровнен по 256 байтам, определенным как D3D12_RAYTRACING_ACCELERATION_STRUCTURE_BYTE_ALIGNMENT, что должно происходить автоматически, так как любая существующая структура ускорения, переданная здесь, уже должна быть размещена с таким выравниванием.

Важно!

Память должна находиться в состоянии D3D12_RESOURCE_STATE_RAYTRACING_ACCELERATION_STRUCTURE.

ScratchAccelerationStructureData

Расположение, в котором сборка будет хранить временные данные. GetRaytracingAccelerationStructurePrebuildInfo сообщает объем временной памяти, необходимой реализации для заданного набора параметров сборки структуры ускорения.

Важно!

Память должна находиться в состоянии D3D12_RESOURCE_STATE_UNORDERED_ACCESS.

ScratchAccelerationStructureData

Требования

   
Верхняя часть d3d12.h