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 パラメーターを確認できます。 チェック以外の GPU 仮想アドレスを検査または逆参照して、ポインターが NULL であるかどうかを確認することはできません (D3D12_RAYTRACING_GEOMETRY_TRIANGLES_DESCの省略可能な変換など)。逆参照する必要はありません。 つまり、加速度構造のリソース要件の計算は、実際のジオメトリ データ (頂点の位置など) に依存せず、三角形の数、インスタンスの数など、全体的なプロパティにのみ依存できます。

[out] pInfo

クエリの結果です。

戻り値

なし

解説

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

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

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

要件

要件
サポートされている最小のクライアント Windows 10 Version 1809 [デスクトップ アプリのみ]
サポートされている最小のサーバー Windows Server 2016 [デスクトップ アプリのみ]
対象プラットフォーム Windows
ヘッダー d3d12.h
Library D3d12.lib
[DLL] D3d12.dll

こちらもご覧ください

ID3D12Device5