共用方式為


D3D12DDI_RAYTRACING_ACCELERATION_STRUCTURE_BUILD_FLAGS列舉 (d3d12umddi.h)

指定光線追蹤加速結構建置旗標。

Syntax

typedef enum D3D12DDI_RAYTRACING_ACCELERATION_STRUCTURE_BUILD_FLAGS {
  D3D12DDI_RAYTRACING_ACCELERATION_STRUCTURE_BUILD_FLAG_NONE,
  D3D12DDI_RAYTRACING_ACCELERATION_STRUCTURE_BUILD_FLAG_ALLOW_UPDATE,
  D3D12DDI_RAYTRACING_ACCELERATION_STRUCTURE_BUILD_FLAG_ALLOW_COMPACTION,
  D3D12DDI_RAYTRACING_ACCELERATION_STRUCTURE_BUILD_FLAG_PREFER_FAST_TRACE,
  D3D12DDI_RAYTRACING_ACCELERATION_STRUCTURE_BUILD_FLAG_PREFER_FAST_BUILD,
  D3D12DDI_RAYTRACING_ACCELERATION_STRUCTURE_BUILD_FLAG_MINIMIZE_MEMORY,
  D3D12DDI_RAYTRACING_ACCELERATION_STRUCTURE_BUILD_FLAG_PERFORM_UPDATE
} ;

常數

 
D3D12DDI_RAYTRACING_ACCELERATION_STRUCTURE_BUILD_FLAG_NONE
沒有為加速結構建置指定的選項。
D3D12DDI_RAYTRACING_ACCELERATION_STRUCTURE_BUILD_FLAG_ALLOW_UPDATE
建置加速結構,使其透過旗標D3D12_RAYTRACING_ACCELERATION_STRUCTURE_BUILD_FLAG_PERFORM_UPDATE支持未來的更新,而不是完全重建應用程式。 此選項可能會導致記憶體耗用量和建置時間增加,以及降低光線追蹤效能。 不過,未來的更新應該比從頭開始建置對等加速結構更快。
D3D12DDI_RAYTRACING_ACCELERATION_STRUCTURE_BUILD_FLAG_ALLOW_COMPACTION
使用壓縮模式呼叫 CopyRaytracingAccelerationStructure ,以啟用壓縮加速結構的選項。 請參閱 D3D12DDI_RAYTRACING_ACCELERATION_STRUCTURE_COPY_MODE
此選項可能會導致記憶體耗用量和建置時間增加。 不過,在未來的壓縮之後,產生的加速結構應該耗用較小的記憶體使用量,而不是從頭開始建置加速結構。

此旗標與所有其他旗標相容。 如果指定為加速結構更新的一部分,則來源加速結構也必須使用此旗標來建置。
D3D12DDI_RAYTRACING_ACCELERATION_STRUCTURE_BUILD_FLAG_PREFER_FAST_TRACE
建構高品質的加速結構,以犧牲額外的建置時間,將光線追蹤效能最大化。 概略的經驗規則是,實作應該花費大約 2-3 倍的預設建置時間,以取得更好的追蹤效能。

此旗標特別適用於靜態幾何。 除了D3D12_RAYTRACING_ACCELERATION_STRUCTURE_BUILD_FLAG_PREFER_FAST_BUILD以外,它也與所有其他旗標相容。
D3D12DDI_RAYTRACING_ACCELERATION_STRUCTURE_BUILD_FLAG_PREFER_FAST_BUILD
建構品質較低的加速結構,以交易建置速度的光線追蹤效能。 概略的經驗規則是,實作應該在追蹤效能的犧牲時,採用預設建置時間大約 1/2 到 1/3。

此旗標與所有其他旗標相容,但D3D12_RAYTRACING_ACCELERATION_STRUCTURE_BUILD_FLAG_PREFER_FAST_TRACE除外。
D3D12DDI_RAYTRACING_ACCELERATION_STRUCTURE_BUILD_FLAG_MINIMIZE_MEMORY
將加速結構建置期間所使用的臨時記憶體數量以及結果的大小降到最低。 此選項可能會導致建置時間和/或光線追蹤時間增加。

這與D3D12_RAYTRACING_ACCELERATION_STRUCTURE_BUILD_FLAG_ALLOW_COMPACTION旗標正交,以及它所啟用的明確加速結構壓縮。 結合旗標可能同時表示初始加速結構,以及壓縮它的結果會使用較少的記憶體。
針對組建使用此旗標的影響會反映在呼叫 GetRaytracingAccelerationStructurePrebuildInfo 之後,再執行建置以擷取組建的記憶體需求。

此旗標與所有其他旗標相容。
D3D12DDI_RAYTRACING_ACCELERATION_STRUCTURE_BUILD_FLAG_PERFORM_UPDATE
執行加速結構更新,而不是從頭開始建置。 這比完整組建更快,但可能會對光線追蹤效能造成負面影響,特別是在更新之前,基礎物件的位置已大幅從加速結構的原始組建變更時。

如果來源和目的地加速結構的位址相同,則會就地執行更新。 來源和目的地的任何其他位址範圍重迭無效。 對於非重疊的來源和目的地,來源加速結構未修改。 輸出加速結構的記憶體需求與輸入加速結構相同。

此旗標與所有其他旗標相容。 D3D12DDI_RAYTRACING_ACCELERATION_STRUCTURE_BUILD_FLAG_ALLOW_UPDATE可能無法設定,因為會繼續允許更新,所以不會有任何差異。 除了D3D12DDI_RAYTRACING_ACCELERATION_STRUCTURE_BUILD_FLAG_ALLOW_UPDATE和D3D12DDI_RAYTRACING_ACCELERATION_STRUCTURE_BUILD_FLAG_PERFORM_UPDATE以外,其他旗標選取項目必須符合來源加速結構中的旗標。

加速結構更新可以連續執行。 來源加速結構必須已使用D3D12_RAYTRACING_ACCELERATION_STRUCTURE_BUILD_FLAG_ALLOW_UPDATE、D3D12DDI_RAYTRACING_ACCELERATION_STRUCTURE_BUILD_FLAG_PERFORM_UPDATE建立,否則,原始加速結構必須透過下列其中一種方式產生。 基本上,加速結構必須經過建構,並預期可能會發生更新。

規格需求

需求
最低支援的用戶端 Windows 10 版本 1809
標頭 d3d12umddi.h