D3D12_BUILD_RAYTRACING_ACCELERATION_STRUCTURE_DESC 構造体 (d3d12.h)
レイトレーシングアクセラレーション構造について説明します。 この構造体を ID3D12GraphicsCommandList4::BuildRaytracingAccelerationStructure に渡して、構築するアクセラレーション構造を記述します。
構文
typedef struct D3D12_BUILD_RAYTRACING_ACCELERATION_STRUCTURE_DESC {
D3D12_GPU_VIRTUAL_ADDRESS DestAccelerationStructureData;
D3D12_BUILD_RAYTRACING_ACCELERATION_STRUCTURE_INPUTS Inputs;
D3D12_GPU_VIRTUAL_ADDRESS SourceAccelerationStructureData;
D3D12_GPU_VIRTUAL_ADDRESS ScratchAccelerationStructureData;
} D3D12_BUILD_RAYTRACING_ACCELERATION_STRUCTURE_DESC;
メンバー
DestAccelerationStructureData
結果の加速度構造を格納する場所。 ID3D12Device5::GetRaytracingAccelerationStructurePrebuildInfo は、アクセラレーション構造のビルド パラメーターのセットを指定して、ここで結果に必要なメモリ量を報告します。
アドレスは、 D3D12_RAYTRACING_ACCELERATION_STRUCTURE_BYTE_ALIGNMENTとして定義された 256 バイトに揃える必要があります。
重要
メモリは状態 D3D12_RESOURCE_STATE_RAYTRACING_ACCELERATION_STRUCTUREである必要があります。
Inputs
アクセラレーション構造ビルドの入力データの説明。 これは、 GetRaytracingAccelerationStructurePrebuildInfo でも使用されるため、データは別の構造体に格納されます。
SourceAccelerationStructureData
Flags パラメーターに D3D12_RAYTRACING_ACCELERATION_STRUCTURE_BUILD_FLAG_PERFORM_UPDATE を設定して、アクセラレーション構造の更新 (増分ビルド) が要求されている場合の既存のアクセラレーション構造体のアドレス。 それ以外の場合、このアドレスは NULL である必要があります。
このアドレスが DestAccelerationStructureData と同じ場合、更新はインプレースで実行されます。 ソースと宛先のメモリの他の形式の重複は無効であり、未定義の動作が生成されます。
アドレスは、 D3D12_RAYTRACING_ACCELERATION_STRUCTURE_BYTE_ALIGNMENTとして定義された 256 バイトにアラインする必要があります。これは、ここで渡された既存のアクセラレーション構造が、このようなアラインメントで既に配置されている必要があるため、自動的に当たります。
重要
メモリは状態 D3D12_RESOURCE_STATE_RAYTRACING_ACCELERATION_STRUCTUREである必要があります。
ScratchAccelerationStructureData
ビルドで一時データが格納される場所。 GetRaytracingAccelerationStructurePrebuildInfo は、特定のアクセラレーション構造ビルド パラメーターのセットに実装に必要なスクラッチ メモリの量を報告します。
重要
メモリ はD3D12_RESOURCE_STATE_UNORDERED_ACCESS状態である必要があります。
ScratchAccelerationStructureData
要件
Header | d3d12.h |