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 を呼び出した結果に反映されます。

このフラグは、他のすべてのフラグと互換性があります。
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 Version 1809
Header d3d12umddi.h