D3D12_BUILD_RAYTRACING_ACCELERATION_STRUCTURE_DESC 結構 (d3d12.h)
描述光線追蹤加速結構。 將此結構傳遞至 ID3D12GraphicsCommandList4::BuildRaytracingAccelerationStructure ,以描述要建置的加速結構。
語法
typedef struct D3D12_BUILD_RAYTRACING_ACCELERATION_STRUCTURE_DESC {
D3D12_GPU_VIRTUAL_ADDRESS DestAccelerationStructureData;
D3D12_BUILD_RAYTRACING_ACCELERATION_STRUCTURE_INPUTS Inputs;
D3D12_GPU_VIRTUAL_ADDRESS SourceAccelerationStructureData;
D3D12_GPU_VIRTUAL_ADDRESS ScratchAccelerationStructureData;
} D3D12_BUILD_RAYTRACING_ACCELERATION_STRUCTURE_DESC;
成員
DestAccelerationStructureData
儲存產生的加速結構的位置。 ID3D12Device5::GetRaytracingAccelerationStructurePrebuildInfo 會 報告此處結果所需的記憶體數量,並指定一組加速結構建置參數。
位址必須對齊 256 個位元組,定義為 D3D12_RAYTRACING_ACCELERATION_STRUCTURE_BYTE_ALIGNMENT。
重要
記憶體必須處於狀態 D3D12_RESOURCE_STATE_RAYTRACING_ACCELERATION_STRUCTURE。
Inputs
加速結構組建的輸入資料描述。 這是資料儲存在不同的結構中,因為它也與 GetRaytracingAccelerationStructurePrebuildInfo搭配使用。
SourceAccelerationStructureData
如果加速結構更新 (要求累加建置) ,請在 Flags 參數中設定 D3D12_RAYTRACING_ACCELERATION_STRUCTURE_BUILD_FLAG_PERFORM_UPDATE ,以解決現有的加速結構。 否則這個位址必須是 Null。
如果此位址與 DestAccelerationStructureData相同,則會就地執行更新。 來源和目的地記憶體的任何其他形式重迭無效,並產生未定義的行為。
位址必須對齊 256 個位元組,定義為 D3D12_RAYTRACING_ACCELERATION_STRUCTURE_BYTE_ALIGNMENT,這應該會自動發生這種情況,因為此處傳入的任何現有加速結構都必須以這類對齊方式放置。
重要
記憶體必須處於狀態 D3D12_RESOURCE_STATE_RAYTRACING_ACCELERATION_STRUCTURE。
ScratchAccelerationStructureData
組建將儲存暫存資料的位置。 GetRaytracingAccelerationStructurePrebuildInfo 會報告實作將需要的臨時記憶體數量,以取得一組指定的加速結構建置參數。
重要
記憶體必須處於狀態 D3D12_RESOURCE_STATE_UNORDERED_ACCESS。
ScratchAccelerationStructureData
需求
標頭 | d3d12.h |