D3D12_BUILD_RAYTRACING_ACCELERATION_STRUCTURE_INPUTS 構造体 (d3d12.h)

レイトレーシング アクセラレーション構造のビルド操作の入力を定義します。 この構造体は 、ID3D12GraphicsCommandList4::BuildRaytracingAccelerationStructureID3D12Device5::GetRaytracingAccelerationStructurePrebuildInfo によって使用されます。

構文

typedef struct D3D12_BUILD_RAYTRACING_ACCELERATION_STRUCTURE_INPUTS {
  D3D12_RAYTRACING_ACCELERATION_STRUCTURE_TYPE        Type;
  D3D12_RAYTRACING_ACCELERATION_STRUCTURE_BUILD_FLAGS Flags;
  UINT                                                NumDescs;
  D3D12_ELEMENTS_LAYOUT                               DescsLayout;
  union {
    D3D12_GPU_VIRTUAL_ADDRESS            InstanceDescs;
    const D3D12_RAYTRACING_GEOMETRY_DESC *pGeometryDescs;
    const D3D12_RAYTRACING_GEOMETRY_DESC const * * ppGeometryDescs;
  };
} D3D12_BUILD_RAYTRACING_ACCELERATION_STRUCTURE_INPUTS;

メンバー

Type

構築する加速度構造の種類。

Flags

ビルド フラグ。

NumDescs

TypeD3D12_RAYTRACING_ACCELERATION_STRUCTURE_TOP_LEVELの場合、この値は DescsLayout に基づいてレイアウトされたインスタンスの数です。

TypeD3D12_RAYTRACING_ACCELERATION_STRUCTURE_BOTTOM_LEVELの場合、この値は pGeometryDescs または ppGeometryDescs によって参照される要素の数です。 これらのフィールドのうち、使用されるフィールドは DescsLayout によって異なります。

DescsLayout

ジオメトリの説明を指定する方法。説明の配列または説明へのポインターの配列。

InstanceDescs

TypeD3D12_RAYTRACING_ACCELERATION_STRUCTURE_TOP_LEVELの場合、これはインスタンスを記述する GPU メモリ内の NumDescsD3D12_RAYTRACING_INSTANCE_DESC構造体を参照します。 各インスタンスは、 D3D12_RAYTRACING_INSTANCE_DESC_BYTE_ALIGNMENTとして定義された 16 バイトに揃える必要があります。

TypeD3D12_RAYTRACING_ACCELERATION_STRUCTURE_TOP_LEVELされていない場合、このパラメーターは使用されません。

DescLayoutD3D12_ELEMENTS_LAYOUT_ARRAYされている場合、InstanceDescs は GPU メモリ内のインスタンス記述の配列を指します。

DescLayoutD3D12_ELEMENTS_LAYOUT_ARRAY_OF_POINTERSされている場合、InstanceDescs は、インスタンスの説明へのポインターの GPU メモリ内D3D12_GPU_VIRTUAL_ADDRESS配列を指します。

が指すメモリは、 状態D3D12_RESOURCE_STATE_NON_PIXEL_SHADER_RESOURCEである必要があります。

pGeometryDescs

TypeD3D12_RAYTRACING_ACCELERATION_STRUCTURE_BOTTOM_LEVELで、DescsLayoutD3D12_ELEMENTS_LAYOUT_ARRAYされている場合は、このフィールドが使用され、個々のジオメトリを記述する、CPU 上の NumDescs の連続するD3D12_RAYTRACING_GEOMETRY_DESC構造体を指します。

TypeD3D12_RAYTRACING_ACCELERATION_STRUCTURE_BOTTOM_LEVELされていないか、DescsLayoutD3D12_ELEMENTS_LAYOUT_ARRAYされていない場合、このパラメーターは使用されません。

ppGeometryDescs

TypeD3D12_RAYTRACING_ACCELERATION_STRUCTURE_BOTTOM_LEVELで、DescsLayoutD3D12_ELEMENTS_LAYOUT_ARRAY_OF_POINTERSされている場合は、このフィールドが使用され、個々のジオメトリを記述する、CPU 上のD3D12_RAYTRACING_GEOMETRY_DESC構造体を指す NumDescs ポインターの配列を指します。

注釈

実際にビルドを実行する GetRaytracingAccelerationStructurePrebuildInfo と共に使用する場合、InstanceDescs などのD3D12_GPU_VIRTUAL_ADDRESS (GPU メモリ内のアドレス) を介して参照されるすべてのパラメーターは、操作によってアクセスされません。 そのため、このメモリは、まだ初期化する必要も、特定のリソース状態である必要もない。 GPU アドレスが null かどうかは、ポインターが逆参照されていない場合でも、操作によって検査できます。

要件

要件
Header d3d12.h