次の方法で共有


ID3D12Device5::GetRaytracingAccelerationStructurePrebuildInfo メソッド (d3d12.h)

ドライバーにリソース要件のクエリを実行して、アクセラレーション構造を構築します。

構文

void GetRaytracingAccelerationStructurePrebuildInfo(
  [in]  const D3D12_BUILD_RAYTRACING_ACCELERATION_STRUCTURE_INPUTS *pDesc,
  [out] D3D12_RAYTRACING_ACCELERATION_STRUCTURE_PREBUILD_INFO      *pInfo
);

パラメーター

[in] pDesc

アクセラレーション構造のビルドの説明。 この構造体は、BuildRaytracingAccelerationStructureと共有されます。 詳細については、D3D12_BUILD_RAYTRACING_ACCELERATION_STRUCTURE_INPUTSを参照してください。

実装では、この構造体と入れ子になった構造体内のすべての CPU パラメーターを確認できます。 D3D12_RAYTRACING_GEOMETRY_TRIANGLES_DESCのオプションの変換など、ポインターが NULL かどうかを確認する以外に、GPU 仮想アドレスを逆参照せずに検査または逆参照することはできません。 つまり、加速度構造のリソース要件の計算は、実際のジオメトリ データ (頂点の位置など) に依存せず、三角形の数、インスタンス数などの全体的なプロパティにのみ依存できます。

[out] pInfo

クエリの結果 (D3D12_RAYTRACING_ACCELERATION_STRUCTURE_PREBUILD_INFO 構造体内)。

戻り値

何一つ

備考

入力アクセラレーション構造の説明は、BuildRaytracingAccelerationStructure内容と同じです。 この関数の結果、アプリケーションは、同じジオメトリを指定 BuildRaytracingAccelerationStructure に適切な量の出力ストレージとスクラッチ ストレージを提供できます。

また、GetAccelerationStructurePrebuildInfo に渡された同じ構成を使用してビルドを実行することもできます。ただし、ジオメトリ/インスタンスの数または特定のジオメトリ内の頂点/インデックス/AABB の数が等しいか小さい場合を除きます。 この場合、GetRaytracingAccelerationStructurePrebuildInfo に渡された元のサイズで報告されるストレージ要件 は有効です。実際には、ビルドで消費される領域は少なくなりますが、それ以上の容量は消費されない可能性があります。 これは、高速化構造用に控えめに大きなストレージを割り当てると問題が発生するアプリシナリオに便利です。

このメソッドは、ドライバーが、実際の頂点データやインデックス データなどを含む GPU メモリへのポインターを逆参照することなく、呼び出しの CPU から参照可能な部分のみを見て、アクセラレーション構造ビルドのリソース要件を計算できる必要があることを前提として、デバイス インターフェイス上にあります。

必要条件

要件 価値
サポートされる最小クライアント Windows 10 バージョン 1809 [デスクトップ アプリのみ]
サポートされる最小サーバー Windows Server 2016 [デスクトップ アプリのみ]
ターゲット プラットフォーム の ウィンドウズ
ヘッダー d3d12.h
ライブラリ D3d12.lib
DLL D3d12.dll

関連項目

ID3D12Device5