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

如果在请求增量生成) (加速结构更新,则现有加速结构的地址,方法是在 Flags 参数中设置 D3D12_RAYTRACING_ACCELERATION_STRUCTURE_BUILD_FLAG_PERFORM_UPDATE 。 否则,此地址必须为 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