以下是 D3D12_BUILD_RAYTRACING_ACCELERATION_STRUCTURE_DESC 结构体的定义:
typedef struct D3D12_BUILD_RAYTRACING_ACCELERATION_STRUCTURE_DESC {
D3D12_GPU_VIRTUAL_ADDRESS DestAccelerationStructureData;
D3D12_BUILD_FLAGS Flags;
UINT NumDescs;
D3D12_GPU_VIRTUAL_ADDRESS ScratchAccelerationStructureData;
union {
struct {
D3D12_ELEMENTS_LAYOUT Type;
union {
D3D12_RAYTRACING_GEOMETRY_DESC *pGeometryDescs;
D3D12_GPU_VIRTUAL_ADDRESS InstanceDescs;
};
} Geometry;
D3D12_GPU_VIRTUAL_ADDRESS InstanceDescs;
};
} D3D12_BUILD_RAYTRACING_ACCELERATION_STRUCTURE_DESC;
其中:
- DestAccelerationStructureData 是目标加速结构的虚拟GPU地址。
- Flags 包含用于控制加速结构构建或更新行为的标志位。
- NumDescs 是描述加速结构的元素的数量。
- ScratchAccelerationStructureData 是用于加速结构构建或更新的临时缓冲区的虚拟GPU地址。
- Geometry 是一个结构,其中包含了有关几何体描述的信息。Type 表示元素的类型,可以是三角形或包围盒。pGeometryDescs 是指向 D3D12_RAYTRACING_GEOMETRY_DESC 结构数组的指针,描述了三角形或包围盒的几何体信息。
- InstanceDescs 是指向包含实例描述的缓冲区的虚拟GPU地址。
这个结构体用于在Direct3D 12中配置光线追踪的加速结构构建或更新过程。要使用这个结构,通常需要创建一个包含上述信息的实例,并将其传递给相应的API函数,比如 ID3D12GraphicsCommandList4::BuildRaytracingAccelerationStructure。
转载请注明出处:http://www.zyzy.cn/article/detail/25905/Win32 API/D3d12.h/D3D12_BUILD_RAYTRACING_ACCELERATION_STRUCTURE_DESC