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
產生著色器線程方格的深度。
規格需求
需求 | 值 |
---|---|
標頭 | d3d12.h |