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