D3D12_BUILD_RAYTRACING_ACCELERATION_STRUCTURE_INPUTS 構造体 (d3d12.h)
レイトレーシング アクセラレーション構造のビルド操作の入力を定義します。 この構造体は 、ID3D12GraphicsCommandList4::BuildRaytracingAccelerationStructure と ID3D12Device5::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
Type がD3D12_RAYTRACING_ACCELERATION_STRUCTURE_TOP_LEVELの場合、この値は DescsLayout に基づいてレイアウトされたインスタンスの数です。
Type がD3D12_RAYTRACING_ACCELERATION_STRUCTURE_BOTTOM_LEVELの場合、この値は pGeometryDescs または ppGeometryDescs によって参照される要素の数です。 これらのフィールドのうち、使用されるフィールドは DescsLayout によって異なります。
DescsLayout
ジオメトリの説明を指定する方法。説明の配列または説明へのポインターの配列。
InstanceDescs
Type がD3D12_RAYTRACING_ACCELERATION_STRUCTURE_TOP_LEVELの場合、これはインスタンスを記述する GPU メモリ内の NumDescsD3D12_RAYTRACING_INSTANCE_DESC構造体を参照します。 各インスタンスは、 D3D12_RAYTRACING_INSTANCE_DESC_BYTE_ALIGNMENTとして定義された 16 バイトに揃える必要があります。
Type がD3D12_RAYTRACING_ACCELERATION_STRUCTURE_TOP_LEVELされていない場合、このパラメーターは使用されません。
DescLayout がD3D12_ELEMENTS_LAYOUT_ARRAYされている場合、InstanceDescs は GPU メモリ内のインスタンス記述の配列を指します。
DescLayout がD3D12_ELEMENTS_LAYOUT_ARRAY_OF_POINTERSされている場合、InstanceDescs は、インスタンスの説明へのポインターの GPU メモリ内D3D12_GPU_VIRTUAL_ADDRESS配列を指します。
が指すメモリは、 状態D3D12_RESOURCE_STATE_NON_PIXEL_SHADER_RESOURCEである必要があります。
pGeometryDescs
Type がD3D12_RAYTRACING_ACCELERATION_STRUCTURE_BOTTOM_LEVELで、DescsLayout がD3D12_ELEMENTS_LAYOUT_ARRAYされている場合は、このフィールドが使用され、個々のジオメトリを記述する、CPU 上の NumDescs の連続するD3D12_RAYTRACING_GEOMETRY_DESC構造体を指します。
Type がD3D12_RAYTRACING_ACCELERATION_STRUCTURE_BOTTOM_LEVELされていないか、DescsLayout がD3D12_ELEMENTS_LAYOUT_ARRAYされていない場合、このパラメーターは使用されません。
ppGeometryDescs
Type がD3D12_RAYTRACING_ACCELERATION_STRUCTURE_BOTTOM_LEVELで、DescsLayout がD3D12_ELEMENTS_LAYOUT_ARRAY_OF_POINTERSされている場合は、このフィールドが使用され、個々のジオメトリを記述する、CPU 上のD3D12_RAYTRACING_GEOMETRY_DESC構造体を指す NumDescs ポインターの配列を指します。
注釈
実際にビルドを実行する GetRaytracingAccelerationStructurePrebuildInfo と共に使用する場合、InstanceDescs などのD3D12_GPU_VIRTUAL_ADDRESS (GPU メモリ内のアドレス) を介して参照されるすべてのパラメーターは、操作によってアクセスされません。 そのため、このメモリは、まだ初期化する必要も、特定のリソース状態である必要もない。 GPU アドレスが null かどうかは、ポインターが逆参照されていない場合でも、操作によって検査できます。
要件
要件 | 値 |
---|---|
Header | d3d12.h |