共用方式為


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