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

구문

멤버

Transform
형식: FLOAT[3][4]
인스턴스-투-월드 변환을 나타내는 행 우선(row-major) 레이아웃의 3x4 변환 행렬입니다. 구현은 모든 지오메트리 또는 AABB를 변환하는 대신 광선을 변환합니다.
Transform의 레이아웃은 아핀 행렬이 일반적으로 메모리에 저장되는 방식의 전치(transpose)입니다. 네 개의 3-벡터 대신 Transform은 세 개의 4-벡터로 배치됩니다.
InstanceID
형식: UINT
지원되는 셰이더 형식에서 InstanceID 내장 함수(intrinsic)를 사용하여 액세스할 수 있는 임의의 24비트 값입니다. InstanceMask
형식: UINT
인스턴스에 할당된 8비트 마스크로, 광선별로 인스턴스 그룹을 포함/거부하는 데 사용할 수 있습니다. 값이 0이면 해당 인스턴스는 절대 포함되지 않으므로 일반적으로 0이 아닌 어떤 값으로 설정해야 합니다. 자세한 내용은 TraceRay 함수의 InstanceInclusionMask 매개 변수를 참조하세요. InstanceContributionToHitGroupIndex
형식: UINT
사용할 히트 그룹을 선택하기 위해 셰이더 테이블 인덱싱에 추가되는 인스턴스별 기여도를 나타내는 임의의 24비트 값입니다. Flags
형식: UINT
인스턴스에 적용할 D3D12_RAYTRACING_INSTANCE_FLAGS의 플래그를 나타내는 8비트 마스크입니다. AccelerationStructure
형식: D3D12_GPU_VIRTUAL_ADDRESS
인스턴스화되는 하단 수준(bottom-level) 가속 구조의 주소입니다. 주소는 D3D12_RAYTRACING_ACCELERATION_STRUCTURE_BYTE_ALIGNMENT로 정의된 256바이트로 정렬되어야 합니다. 여기에 전달되는 기존 가속 구조는 이미 그러한 정렬로 배치되어 있어야 합니다. 가리키는 메모리는 D3D12_RESOURCE_STATE_RAYTRACING_ACCELERATION_STRUCTURE 상태여야 합니다.

설명

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

요구 사항

헤더: d3d12_xs.h
라이브러리: d3d12_xs.lib
지원 플랫폼: XBOX Series 콘솔
마지막 수정일 2026년 8월 24일