在 Win32 API 中,D3D12_BUILD_RAYTRACING_ACCELERATION_STRUCTURE_INPUTS 结构体是用于描述光线追踪加速结构(Raytracing Acceleration Structure)的创建或更新过程的输入参数结构。这个结构体包含了创建或更新光线追踪加速结构所需的一些基本信息。

以下是 D3D12_BUILD_RAYTRACING_ACCELERATION_STRUCTURE_INPUTS 结构体的定义:
typedef struct D3D12_BUILD_RAYTRACING_ACCELERATION_STRUCTURE_INPUTS {
  D3D12_RAYTRACING_ACCELERATION_STRUCTURE_TYPE Type;
  D3D12_RAYTRACING_ACCELERATION_STRUCTURE_BUILD_FLAGS Flags;
  UINT                                          NumDescs;
  D3D12_GPU_VIRTUAL_ADDRESS                       SrcAccelerationStructureData;
  D3D12_GPU_VIRTUAL_ADDRESS                       DestAccelerationStructureData;
  D3D12_GPU_VIRTUAL_ADDRESS                       ScratchAccelerationStructureData;
} D3D12_BUILD_RAYTRACING_ACCELERATION_STRUCTURE_INPUTS;

其中:

  •  Type 是指定要构建或更新的加速结构的类型,可以是顶层结构(Top Level)或底层结构(Bottom Level)。

  •  Flags 包含用于控制加速结构构建或更新行为的标志位。

  •  NumDescs 是描述加速结构的元素的数量。

  •  SrcAccelerationStructureData 是源加速结构的虚拟GPU地址,用于更新操作。

  •  DestAccelerationStructureData 是目标加速结构的虚拟GPU地址。

  •  ScratchAccelerationStructureData 是用于加速结构构建或更新的临时缓冲区的虚拟GPU地址。


这个结构体用于在Direct3D 12中配置光线追踪的加速结构构建或更新的输入参数。要使用这个结构,通常需要创建一个包含上述信息的实例,并将其传递给相应的API函数,比如 ID3D12GraphicsCommandList4::BuildRaytracingAccelerationStructure。

请注意,此结构体的具体使用取决于具体的Direct3D 12版本和硬件支持的特性。在使用之前,建议查阅相关的文档和API参考。


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