структура 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 |