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

# D3D12_BUILD_RAYTRACING_ACCELERATION_STRUCTURE_INPUTS

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

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

## 構文

```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

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

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

*DescsLayout*\
型: D3D12\_ELEMENTS\_LAYOUT

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

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

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

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

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

*DescLayout* が **D3D12\_ELEMENTS\_LAYOUT\_ARRAY\_OF\_POINTERS** の場合、*InstanceDescs* は、インスタンス記述への [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](https://docs.xbox.com/ja-jp/reference/graphics/d3d12_x/enums/d3d12_resource_states.md) にある必要があります。

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

*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*\
型: const D3D12\_RAYTRACING\_GEOMETRY\_DESC \*const \*

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

## 解説

実際にビルドを行う  [GetRaytracingAccelerationStructurePrebuildInfo](https://docs.xbox.com/ja-jp/reference/graphics/d3d12/interfaces/id3d12device5/methods/id3d12device5_getraytracingaccelerationstructureprebuildinfo_public.md) と共に使用する場合、*InstanceDescs* のように [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](https://docs.xbox.com/ja-jp/reference/graphics/d3d12/structs/d3d12_build_raytracing_acceleration_structure_desc_public.md)
- [GetRaytracingAccelerationStructurePrebuildInfo](https://docs.xbox.com/ja-jp/reference/graphics/d3d12/interfaces/id3d12device5/methods/id3d12device5_getraytracingaccelerationstructureprebuildinfo_public.md)
- [D3D12_RAYTRACING_GEOMETRY_DESC (XBOX Series 本体)](https://docs.xbox.com/ja-jp/reference/graphics/d3d12/structs/d3d12_raytracing_geometry_desc_public.md)
- [D3D12_RAYTRACING_GEOMETRY_AABBS_DESC (XBOX Series 本体)](https://docs.xbox.com/ja-jp/reference/graphics/d3d12/structs/d3d12_raytracing_geometry_aabbs_desc_public.md)
- [D3D12_RAYTRACING_ACCELERATION_STRUCTURE_POSTBUILD_INFO_DESC](https://docs.xbox.com/ja-jp/reference/graphics/d3d12/structs/d3d12_raytracing_acceleration_structure_postbuild_info_desc_public.md)
