共用方式為


D3D12DDI_RAYTRACING_ACCELERATION_STRUCTURE_BUILD_FLAGS列舉 (d3d12umddi.h)

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

語法

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 之後,呼叫 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