D3D12_DISPATCH_RAYS_DESC 结构 (d3d12.h)

描述通过调用 ID3D12GraphicsCommandList4::D ispatchRays 启动的光线调度操作的属性。

语法

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_RESOURCE_STATE_NON_PIXEL_SHADER_RESOURCE状态。

地址必须对齐到 64 个字节,定义为 D3D12_RAYTRACING_SHADER_TABLE_BYTE_ALIGNMENT,并且范围为 [0...4096] 字节。

MissShaderTable

未命中着色器的着色器表。

步幅是记录的步幅,必须对齐到 32 个字节,定义为 D3D12_RAYTRACING_SHADER_RECORD_BYTE_ALIGNMENT,并且范围为 [0...4096] 字节。 允许 0。

指向的内存必须处于 D3D12_RESOURCE_STATE_NON_PIXEL_SHADER_RESOURCE状态。

地址必须与 64 个字节对齐,定义为 D3D12_RAYTRACING_SHADER_TABLE_BYTE_ALIGNMENT

HitGroupTable

命中组的着色器表。

步幅是记录的步幅,必须对齐到 32 个字节,定义为 D3D12_RAYTRACING_SHADER_RECORD_BYTE_ALIGNMENT,并且范围为 [0...4096] 字节。 允许 0。

指向的内存必须处于 D3D12_RESOURCE_STATE_NON_PIXEL_SHADER_RESOURCE状态。

地址必须与 64 个字节对齐,定义为 D3D12_RAYTRACING_SHADER_TABLE_BYTE_ALIGNMENT

CallableShaderTable

可调用着色器的着色器表。

步幅是记录的步幅,必须对齐 32 个字节,定义为 D3D12_RAYTRACING_SHADER_RECORD_BYTE_ALIGNMENT。 允许 0。

指向的内存必须处于 D3D12_RESOURCE_STATE_NON_PIXEL_SHADER_RESOURCE状态。

地址必须与 64 个字节对齐,定义为 D3D12_RAYTRACING_SHADER_TABLE_BYTE_ALIGNMENT

Width

生成着色器线程网格的宽度。

Height

生成着色器线程网格的高度。

Depth

生成着色器线程网格的深度。

要求

要求
Header d3d12.h