> ## 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) 구조체를 참조합니다. 각 인스턴스는 [D3D12\_RAYTRACING\_INSTANCE\_DESC\_BYTE\_ALIGNMENT](https://learn.microsoft.com/en-us/windows/desktop/direct3d12/constants)로 정의된 16바이트에 정렬되어야 합니다.

<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

- [GetRaytracingAccelerationStructurePrebuildInfo](/ko/reference/graphics/d3d12/interfaces/id3d12device5/methods/id3d12device5_getraytracingaccelerationstructureprebuildinfo_public.md)
- [D3D12_BUILD_RAYTRACING_ACCELERATION_STRUCTURE_DESC](/ko/reference/graphics/d3d12/structs/d3d12_build_raytracing_acceleration_structure_desc_public.md)
- [D3D12_RAYTRACING_GEOMETRY_DESC (XBOX Series 콘솔)](/ko/reference/graphics/d3d12/structs/d3d12_raytracing_geometry_desc_public.md)
- [D3D12_RAYTRACING_GEOMETRY_AABBS_DESC (XBOX Series 콘솔)](/ko/reference/graphics/d3d12/structs/d3d12_raytracing_geometry_aabbs_desc_public.md)
- [D3D12_RAYTRACING_ACCELERATION_STRUCTURE_PREBUILD_INFO](/ko/reference/graphics/d3d12/structs/d3d12_raytracing_acceleration_structure_prebuild_info_public.md)
