OpenXR로 개발

적용 가능한 XR 기기
이 가이드는 이러한 유형의 XR 기기를 위한 환경을 빌드하는 데 도움이 됩니다.
XR 헤드셋
유선 XR 글라스

 

OpenXR 텍스트 로고

Android XR은 OpenXR 1.1 사양 및 일부 공급업체 확장 프로그램을 지원하여 OpenXR로 빌드된 앱을 지원합니다. OpenXR은 다양한 XR 기기에서 공통 API 집합을 사용하여 몰입형 대화형 환경을 만들 수 있는 개방형 표준입니다.

기능

Android XR은 OpenXR을 사용하여 XR 기기의 고유한 기능을 최대한 활용하는 앱을 빌드할 수 있는 기능을 지원합니다. 이러한 기능에는 다음이 포함됩니다.

공간 엔티티 프레임워크
장면 이해와 공간 추론을 위한 통합 기반입니다. 애플리케이션이 환경에서 물리적 공간 항목 (평면, 3D 메시, 경계 상자, 이미지, 마커, 주석 포함)을 발견, 쿼리, 추적하고, 공간 경계를 사용하여 발견 항목을 필터링하고, 항목 원형을 쿼리하고, 항목에 연결된 공간 앵커를 만들고, 공간 항목 및 메시 레이캐스팅을 수행하고, 애플리케이션 세션 전반에서 공간 항목을 유지할 수 있습니다.
공간 컨테이너
애플리케이션이 OpenXR 스왑체인 및 컴포지션 레이어를 사용하여 표시 가능한 3D 공간 컨테이너(제한된 컨테이너와 몰입형 컨테이너 모두)를 만들고 렌더링할 수 있도록 하는 크로스 플랫폼 공간 윈도우 API(XR_EXT_spatial_container 및 XR_EXT_spatial_container_self_rendering)로, 사용자가 여러 공간 컨테이너를 동시에 경험할 수 있습니다.
Geospatial 및 Geospatial Anchor
애플리케이션이 Google의 VPS (Visual Positioning Service) 및 GPS를 사용하여 지구를 기준으로 한 포즈를 추적하고, Google Cloud 서비스로 인증하고, 특정 위도, 경도, 고도에 Geospatial Anchor 및 Surface Anchor를 배치할 수 있습니다.
추적 가능 항목
환경 내에서 평평한 표면을 식별하고 추적하는 기능인 평면 감지를 지원하여 실제 세계와 관련하여 가상 객체를 배치할 수 있으며, 실제 객체나 위치에 연결할 수 있는 가상 참조 지점인 앵커를 지원하여 사용자가 이동하더라도 가상 콘텐츠가 정확하게 배치되고 방향을 유지할 수 있습니다.
레이캐스팅
가상 광선과 장면의 객체 또는 월드 메시 간의 교차점을 결정하는 데 사용되는 기법으로, 가상 요소 선택 및 조작과 같은 상호작용을 용이하게 합니다.
앵커 지속성
여러 세션에서 앵커를 저장하고 복원하는 기능으로, 환경 내에서 가상 콘텐츠를 지속적이고 일관되게 배치할 수 있습니다.
객체 추적
실제 세계에서 마우스, 키보드, 기타 실제 물체를 추적하는 기능
이미지 및 마커 추적
환경에서 평면 참고 이미지와 실제 마커(예: AprilTag 및 ArUco 마커)를 감지하고 추적하는 기능
QR 코드 추적
실제 환경에서 QR 코드를 추적하고 데이터를 디코딩하는 기능
깊이 텍스처
장면에서 카메라와 객체 간의 거리에 관한 정보를 제공하는 깊이 맵을 생성하여 더 사실적인 오클루전 및 상호작용 효과를 지원합니다.
패스 스루
실제 카메라 영상과 가상 콘텐츠를 혼합하여 실제 세계와 디지털 세계를 원활하게 결합하는 혼합 현실 환경을 만드는 기능입니다.
전역 패스 스루 어둡게 하기
애플리케이션이 전역 패스 스루 디밍 수준을 설정하고 쿼리하여 가상 콘텐츠를 물리적 환경과 혼합하고 디밍 수준이 변경될 때 이벤트를 수신할 수 있도록 허용합니다.
표시 영역 페더링
런타임에서 적용한 페더링된 경계 영역을 노출하여 애플리케이션이 주변 페더링의 영향을 받지 않는 안전 영역 내에 UI 요소를 배치할 수 있습니다.
장면 메시
물리, 오클루전, 기타 월드 인식 상호작용에 사용할 수 있는 환경의 3D 메시를 획득하는 기능
컴포지션 레이어 패스 스루
다각형 패스 스루 합성 레이어 컷아웃을 허용하며, 실제 객체를 장면에 가져오는 데 사용할 수 있습니다.
얼굴 추적
시각 및 오디오 데이터 소스에서 사용자의 얼굴 특징을 추적하여 더 사실적이고 표현력이 풍부한 아바타와 가상 캐릭터를 만들 수 있습니다.
눈 추적
사용자 눈의 위치와 방향을 제공하며, 아바타의 눈 포즈를 더 사실적으로 만들도록 설계되었습니다.
손 추적
사용자 손의 위치와 움직임을 추적하는 기능
손 메시
사용자의 손을 로우 폴리 메시로 정확하게 표현합니다. 최상의 성능을 얻을 수 있도록 플랫폼 간 애플리케이션 전송에 최적화되어 있습니다. 이는 바인드 포즈와 블렌드 가중치를 사용하는 다른 확장 프로그램의 대안입니다.
몸 전체 추적
머리 및 손 추적 입력을 사용하여 사용자의 신체 관절 위치와 비율을 추정합니다.
조명 추정
사용자의 실제 조명 조건과 일치하도록 조명 모델 (방향성, 주변, 구면 조화, 큐브맵 조명 포함)에 사용됩니다.

지원되는 입력 장치

Android XR은 다음 입력 장치도 지원합니다.

손 상호작용
손가락 모으기, 스와이프, 가리키기와 같은 특정 손동작을 인식하여 사용자가 동작과 손 움직임을 통해 가상 객체와 상호작용할 수 있도록 합니다.
시선 상호작용
사용자의 시선 움직임을 추적하여 시선을 사용해 가상 객체를 선택하고 상호작용할 수 있는 기능입니다.
6DoF 모션 컨트롤러
앱 내에서 작업을 트리거하는 방향 패드 및 버튼 바인딩 또는 마우스 오버 이벤트와 함께 컨트롤러 위치 및 움직임을 추적하는 기능
마우스 상호작용
사용자가 3D 공간에서 마우스 포인터를 통해 객체와 상호작용할 수 있는 기능

지원되는 성능 기능

Android XR은 다음과 같은 성능 관련 기능을 지원합니다.

눈 추적 포비에이션
앱이 눈의 초점에서만 더 높은 해상도의 콘텐츠를 렌더링하도록 허용합니다.
스페이스 워프
속도 벡터와 깊이 텍스처 정보를 사용하여 트윈 프레임을 생성하므로 사용자가 경험에 몰입하는 데 필요한 프레임 속도를 효과적으로 높일 수 있습니다.
프레임 합성
애플리케이션에서 제공하는 모션 벡터와 프레임 데이터를 사용하여 중간 프레임을 합성함으로써 시각적 부드러움과 프레임 속도를 개선합니다.
성능 측정항목
현재 XR 기기, 컴포지터, XR 앱의 런타임에 Android XR 성능 측정항목을 제공합니다. 여기에는 CPU 프레임 시간, GPU 프레임 시간, GPU 사용률, CPU 주파수, 초당 프레임 수 등이 포함됩니다.

지원되는 기능 및 확장 프로그램의 전체 목록은 OpenXR 기능 개요를 참고하세요.

지원되는 엔진

Android XR을 사용한 OpenXR 개발에는 다음 엔진이 지원됩니다.

Unity

OpenXR을 기반으로 빌드된 Android XR의 Unity 지원을 통해 개발자는 Unity 6를 사용하여 환경을 만들 수 있습니다. Unity 개요에서 Unity로 XR 앱을 빌드하는 방법을 자세히 알아보세요.

Unreal Engine

Unreal Engine은 OpenXR 표준을 통해 Android XR을 지원하므로 Unreal Engine 5에서 표준 도구와 워크플로를 사용할 수 있습니다. Unreal Engine 개요에서 Unreal Engine을 사용하여 XR 앱을 빌드하는 방법을 자세히 알아보세요.

Godot

Godot는 OpenXR 통합을 통해 Android XR을 지원하므로 표준 Godot 워크플로를 사용하여 Android용 XR 앱을 빌드하고 내보낼 수 있습니다. Godot 개요에서 Godot으로 XR 앱을 빌드하는 방법을 자세히 알아보세요.


OpenXR™ 및 OpenXR 로고는 The Khronos Group Inc. 소유의 상표이며 중국, 유럽 연합, 일본, 영국에서 상표로 등록되어 있습니다.