D3D12_DISPATCH_RAYS_DESC 是 Direct3D 12 中用于描述射线追踪调度的结构体。以下是该结构体的定义:
typedef struct D3D12_DISPATCH_RAYS_DESC {
  D3D12_GPU_VIRTUAL_ADDRESS_RANGE RayGenerationShaderRecord;
  D3D12_GPU_VIRTUAL_ADDRESS_RANGE_AND_STRIDE MissShaderTable;
  D3D12_GPU_VIRTUAL_ADDRESS_RANGE_AND_STRIDE HitGroupTable;
  D3D12_GPU_VIRTUAL_ADDRESS_RANGE_AND_STRIDE CallableShaderTable;
  UINT                              Width;
  UINT                              Height;
  UINT                              Depth;
} D3D12_DISPATCH_RAYS_DESC;

这个结构体包含以下成员:

  •  RayGenerationShaderRecord: D3D12_GPU_VIRTUAL_ADDRESS_RANGE 结构体,指定光线生成着色器记录(Ray Generation Shader Record)的 GPU 虚拟地址范围。

  •  MissShaderTable: D3D12_GPU_VIRTUAL_ADDRESS_RANGE_AND_STRIDE 结构体,指定丢失着色器表的 GPU 虚拟地址范围和步长。

  •  HitGroupTable: D3D12_GPU_VIRTUAL_ADDRESS_RANGE_AND_STRIDE 结构体,指定命中组表的 GPU 虚拟地址范围和步长。

  •  CallableShaderTable: D3D12_GPU_VIRTUAL_ADDRESS_RANGE_AND_STRIDE 结构体,指定可调用着色器表的 GPU 虚拟地址范围和步长。

  •  Width: 指定调度的射线追踪的宽度。

  •  Height: 指定调度的射线追踪的高度。

  •  Depth: 指定调度的射线追踪的深度。


这个结构体通常用于调度射线追踪工作负载。射线追踪是 Direct3D 12 中引入的一种高级图形技术,用于实现更真实的光线和阴影效果。




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