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 |