> ## Documentation Index
> Fetch the complete documentation index at: https://devdocs.xbox.com/llms.txt
> Use this file to discover all available pages before exploring further.

# D3D12_BUILD_RAYTRACING_ACCELERATION_STRUCTURE_INPUTS

> レイトレーシング アクセラレーション構造ビルド操作の入力を定義します。この構造体は次のもので使用されます。

レイトレーシング アクセラレーション構造ビルド操作の入力を定義します。この構造体は [ID3D12GraphicsCommandList4::BuildRaytracingAccelerationStructure](/reference/graphics/d3d12/interfaces/id3d12graphicscommandlist4/methods/id3d12graphicscommandlist4_buildraytracingaccelerationstructure_public) と [ID3D12Device5::GetRaytracingAccelerationStructurePrebuildInfo](/reference/graphics/d3d12/interfaces/id3d12device5/methods/id3d12device5_getraytracingaccelerationstructureprebuildinfo_public) で使用されます。

## 構文

```cpp theme={null}
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;
    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*\
型: D3D12\_RAYTRACING\_ACCELERATION\_STRUCTURE\_TYPE

ビルドするアクセラレーション構造の種類。

*Flags*\
型: D3D12\_RAYTRACING\_ACCELERATION\_STRUCTURE\_BUILD\_FLAGS

ビルド フラグ。

*NumDescs*\
型: UINT

<i>Type</i> が **D3D12\_RAYTRACING\_ACCELERATION\_STRUCTURE\_TOP\_LEVEL** の場合、この値は <i>DescsLayout</i> に基づいてレイアウトされたインスタンスの数です。

<i>Type</i> が **D3D12\_RAYTRACING\_ACCELERATION\_STRUCTURE\_BOTTOM\_LEVEL** の場合、この値は <i>pGeometryDescs</i> または <i>ppGeometryDescs</i> によって参照される要素の数です。これらのフィールドのどちらが使用されるかは <i>DescsLayout</i> によって決まります。

*DescsLayout*\
型: D3D12\_ELEMENTS\_LAYOUT

ジオメトリの記述を指定する方法。記述の配列か、記述へのポインターの配列のいずれかです。

*InstanceDescs*\
型: D3D12\_GPU\_VIRTUAL\_ADDRESS

<i>Type</i> が **D3D12\_RAYTRACING\_ACCELERATION\_STRUCTURE\_TOP\_LEVEL** の場合、これはインスタンスを記述する GPU メモリ内の <i>NumDescs</i> 個の [D3D12\_RAYTRACING\_INSTANCE\_DESC](/reference/graphics/d3d12/structs/d3d12_raytracing_instance_desc_public) 構造体を参照します。各インスタンスは 16 バイト境界に揃える必要があります (これは [D3D12\_RAYTRACING\_INSTANCE\_DESC\_BYTE\_ALIGNMENT](https://learn.microsoft.com/en-us/windows/desktop/direct3d12/constants) として定義されています)。

<i>Type</i> が **D3D12\_RAYTRACING\_ACCELERATION\_STRUCTURE\_TOP\_LEVEL** でない場合、このパラメーターは使用されません。

<i>DescLayout</i> が **D3D12\_ELEMENTS\_LAYOUT\_ARRAY** の場合、<i>InstanceDescs</i> は GPU メモリ内のインスタンス記述の配列を指します。

<i>DescLayout</i> が **D3D12\_ELEMENTS\_LAYOUT\_ARRAY\_OF\_POINTERS** の場合、<i>InstanceDescs</i> は、インスタンス記述への [D3D12\_GPU\_VIRTUAL\_ADDRESS](https://learn.microsoft.com/en-us/windows/desktop/direct3d12/d3d12_gpu_virtual_address) ポインターの GPU メモリ内の配列を指します。

指すメモリは、状態 [D3D12\_RESOURCE\_STATE\_NON\_PIXEL\_SHADER\_RESOURCE](/reference/graphics/d3d12_x/enums/d3d12_resource_states) にある必要があります。

*pGeometryDescs*\
型: const D3D12\_RAYTRACING\_GEOMETRY\_DESC \*

<i>Type</i> が **D3D12\_RAYTRACING\_ACCELERATION\_STRUCTURE\_BOTTOM\_LEVEL** で、<i>DescsLayout</i> が **D3D12\_ELEMENTS\_LAYOUT\_ARRAY** の場合、このフィールドが使用され、個々のジオメトリを記述する CPU 上の連続する <i>NumDescs</i> 個の **D3D12\_RAYTRACING\_GEOMETRY\_DESC** 構造体を指します。

<i>Type</i> が **D3D12\_RAYTRACING\_ACCELERATION\_STRUCTURE\_BOTTOM\_LEVEL** でない、または <i>DescsLayout</i> が **D3D12\_ELEMENTS\_LAYOUT\_ARRAY** でない場合、このパラメーターは使用されません。

*ppGeometryDescs*\
型: const D3D12\_RAYTRACING\_GEOMETRY\_DESC \*const \*

<i>Type</i> が **D3D12\_RAYTRACING\_ACCELERATION\_STRUCTURE\_BOTTOM\_LEVEL** で、<i>DescsLayout</i> が **D3D12\_ELEMENTS\_LAYOUT\_ARRAY\_OF\_POINTERS** の場合、このフィールドが使用され、個々のジオメトリを記述する CPU 上の [D3D12\_RAYTRACING\_GEOMETRY\_DESC](/reference/graphics/d3d12/structs/d3d12_raytracing_geometry_desc_public) 構造体への <i>NumDescs</i> 個のポインターの配列を指します。

## 解説

実際にビルドを行う  [GetRaytracingAccelerationStructurePrebuildInfo](/reference/graphics/d3d12/interfaces/id3d12device5/methods/id3d12device5_getraytracingaccelerationstructureprebuildinfo_public) と共に使用する場合、<i>InstanceDescs</i> のように [D3D12\_GPU\_VIRTUAL\_ADDRESS](https://learn.microsoft.com/en-us/windows/desktop/direct3d12/d3d12_gpu_virtual_address) (GPU メモリ内のアドレス) を介して参照されるパラメーターは、操作によってアクセスされません。したがって、このメモリはまだ初期化されている必要も、特定のリソース状態にある必要もありません。GPU アドレスが NULL であるかどうかは、ポインターが逆参照されない場合でも、操作によって検査できます。

## 要件

**ヘッダー:** d3d12\_xs.h\
**ライブラリ:** d3d12\_xs.lib\
**サポートされるプラットフォーム**: XBOX Series 本体


## Related topics

- [D3D12_BUILD_RAYTRACING_ACCELERATION_STRUCTURE_DESC](/ja-jp/reference/graphics/d3d12/structs/d3d12_build_raytracing_acceleration_structure_desc_public.md)
- [GetRaytracingAccelerationStructurePrebuildInfo](/ja-jp/reference/graphics/d3d12/interfaces/id3d12device5/methods/id3d12device5_getraytracingaccelerationstructureprebuildinfo_public.md)
- [D3D12_RAYTRACING_GEOMETRY_DESC (XBOX Series 本体)](/ja-jp/reference/graphics/d3d12/structs/d3d12_raytracing_geometry_desc_public.md)
- [D3D12_RAYTRACING_GEOMETRY_AABBS_DESC (XBOX Series 本体)](/ja-jp/reference/graphics/d3d12/structs/d3d12_raytracing_geometry_aabbs_desc_public.md)
- [D3D12_RAYTRACING_ACCELERATION_STRUCTURE_POSTBUILD_INFO_DESC](/ja-jp/reference/graphics/d3d12/structs/d3d12_raytracing_acceleration_structure_postbuild_info_desc_public.md)
