> ## 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_RAYTRACING_INSTANCE_DESC (XBOX Series 콘솔)

> 가속 구조 빌드 과정에서 GPU 메모리에 사용되는 레이트레이싱 가속 구조의 인스턴스를 설명합니다.

가속 구조 빌드 과정에서 GPU 메모리에 사용되는 레이트레이싱 가속 구조의 인스턴스를 설명합니다.

## 구문

```cpp theme={null}
typedef struct D3D12_RAYTRACING_INSTANCE_DESC
{
    FLOAT[4] Transform;
    UINT InstanceID;
    UINT InstanceMask;
    UINT InstanceContributionToHitGroupIndex;
    UINT Flags;
    D3D12_GPU_VIRTUAL_ADDRESS AccelerationStructure;
} D3D12_RAYTRACING_INSTANCE_DESC
```

### 멤버

*Transform*\
형식: FLOAT\[3]\[4]

인스턴스-투-월드 변환을 나타내는 행 우선(row-major) 레이아웃의 3x4 변환 행렬입니다. 구현은 모든 지오메트리 또는 AABB를 변환하는 대신 광선을 변환합니다.

<Note>
  `Transform`의 레이아웃은 아핀 행렬이 일반적으로 메모리에 저장되는 방식의 전치(transpose)입니다. 네 개의 3-벡터 대신 `Transform`은 세 개의 4-벡터로 배치됩니다.
</Note>

*InstanceID*\
형식: UINT

지원되는 셰이더 형식에서 `InstanceID` 내장 함수(intrinsic)를 사용하여 액세스할 수 있는 임의의 24비트 값입니다.

*InstanceMask*\
형식: UINT

인스턴스에 할당된 8비트 마스크로, 광선별로 인스턴스 그룹을 포함/거부하는 데 사용할 수 있습니다. 값이 0이면 해당 인스턴스는 절대 포함되지 않으므로 일반적으로 0이 아닌 어떤 값으로 설정해야 합니다. 자세한 내용은 [TraceRay](https://learn.microsoft.com/en-us/windows/win32/direct3d12/traceray-function) 함수의 `InstanceInclusionMask` 매개 변수를 참조하세요.

*InstanceContributionToHitGroupIndex*\
형식: UINT

사용할 히트 그룹을 선택하기 위해 셰이더 테이블 인덱싱에 추가되는 인스턴스별 기여도를 나타내는 임의의 24비트 값입니다.

*Flags*\
형식: UINT

인스턴스에 적용할 [D3D12\_RAYTRACING\_INSTANCE\_FLAGS](/reference/graphics/d3d12/enums/d3d12_raytracing_instance_flags_public)의 플래그를 나타내는 8비트 마스크입니다.

*AccelerationStructure*\
형식: D3D12\_GPU\_VIRTUAL\_ADDRESS

인스턴스화되는 하단 수준(bottom-level) 가속 구조의 주소입니다. 주소는 [D3D12\_RAYTRACING\_ACCELERATION\_STRUCTURE\_BYTE\_ALIGNMENT](https://learn.microsoft.com/en-us/windows/win32/direct3d12/constants)로 정의된 256바이트로 정렬되어야 합니다. 여기에 전달되는 기존 가속 구조는 이미 그러한 정렬로 배치되어 있어야 합니다.

가리키는 메모리는 [D3D12\_RESOURCE\_STATE\_RAYTRACING\_ACCELERATION\_STRUCTURE](/reference/graphics/d3d12_x/enums/d3d12_resource_states) 상태여야 합니다.

## 설명

이 C++ 구조체 정의는 CPU에서 먼저 인스턴스 데이터를 생성한 다음 GPU에 업로드하는 경우 유용합니다. 하지만 애플리케이션은 동일한 레이아웃을 따라 (예를 들어 컴퓨트 셰이더에서) 인스턴스 설명을 GPU 메모리에 직접 생성할 수도 있습니다.

## 요구 사항

**헤더:** d3d12\_xs.h\
**라이브러리:** d3d12\_xs.lib\
**지원 플랫폼**: XBOX Series 콘솔


## Related topics

- [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_INSTANCE_FLAGS (XBOX Series consoles)](/ko/reference/graphics/d3d12/enums/d3d12_raytracing_instance_flags_public.md)
- [D3D12_RAYTRACING_ACCELERATION_STRUCTURE_POSTBUILD_INFO_SERIALIZATION_DESC (XBOX Series 콘솔)](/ko/reference/graphics/d3d12/structs/d3d12_raytracing_acceleration_structure_postbuild_info_serialization_desc_public.md)
- [D3D12_RAYTRACING_ACCELERATION_STRUCTURE_POSTBUILD_INFO_CURRENT_SIZE_DESC (XBOX Series 콘솔)](/ko/reference/graphics/d3d12/structs/d3d12_raytracing_acceleration_structure_postbuild_info_current_size_desc_public.md)
