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 |