在 Direct3D 12 中,D3D12_RAYTRACING_ACCELERATION_STRUCTURE_PREBUILD_INFO 是一个结构体,用于在构建射线追踪加速结构(Ray Tracing Acceleration Structure)之前获取一些预建信息。

以下是 D3D12_RAYTRACING_ACCELERATION_STRUCTURE_PREBUILD_INFO 结构的定义:
typedef struct D3D12_RAYTRACING_ACCELERATION_STRUCTURE_PREBUILD_INFO {
  UINT64 ResultDataMaxSizeInBytes;
  UINT64 ScratchDataSizeInBytes;
  UINT64 UpdateScratchDataSizeInBytes;
} D3D12_RAYTRACING_ACCELERATION_STRUCTURE_PREBUILD_INFO;

结构体成员的含义如下:

  •  ResultDataMaxSizeInBytes: 表示构建加速结构时所需的结果数据的最大大小(以字节为单位)。


  •  ScratchDataSizeInBytes: 表示构建加速结构时所需的临时存储空间(Scratch Buffer)的大小(以字节为单位)。这是在构建期间需要用于临时计算的内存大小。


  •  UpdateScratchDataSizeInBytes: 表示更新加速结构时所需的临时存储空间(Scratch Buffer)的大小(以字节为单位)。这是在更新期间需要用于临时计算的内存大小。


这个结构体通常用于在构建或更新射线追踪加速结构之前,通过调用 ID3D12Device5 接口的 GetRaytracingAccelerationStructurePrebuildInfo 方法获取构建信息。获取这些信息后,你可以为加速结构的构建分配足够的资源,以确保成功构建或更新。

这些信息对于在射线追踪应用程序中动态构建或更新加速结构非常有用。


转载请注明出处:http://www.pingtaimeng.com/article/detail/25966/Win32 API/D3d12.h/D3D12_RAYTRACING_ACCELERATION_STRUCTURE_PREBUILD_INFO