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