OpenXR

OpenXR 로고

OpenXR은 Khronos의 개방형 로열티 없는 API 표준으로, 혼합 현실 스펙트럼의 다양한 디바이스에 대한 기본 액세스를 엔진에 제공합니다.

HoloLens 2 OpenXR을 사용하여 개발하거나 데스크톱에서 몰입형 VR 헤드셋을 Windows Mixed Reality 수 있습니다. 헤드셋에 액세스할 수 없는 경우 HoloLens 2 에뮬레이터 또는 Windows Mixed Reality 시뮬레이터를 대신 사용할 수 있습니다.

OpenXR을 사용하는 이유

OpenXR을 사용하면 HoloLens 2 같은 홀로그램 디바이스와 데스크톱 PC용 Windows Mixed Reality 헤드셋과 같은 몰입형 VR 디바이스를 모두 대상으로 하는 엔진을 빌드할 수 있습니다. OpenXR을 사용하면 코드를 작성한 다음 광범위한 하드웨어 플랫폼에서 이식 가능한 코드를 작성할 수 있습니다.

OpenXR API는 로더를 사용하여 헤드셋의 네이티브 플랫폼 지원에 애플리케이션을 직접 연결합니다. 최종 사용자는 Windows Mixed Reality 사용하든 다른 헤드셋을 사용하든 최대 성능과 최소 대기 시간을 얻을 수 있습니다.

OpenXR이란?

OpenXR API는 홀로그램 및 몰입형 디바이스를 모두 대상으로 할 수 있는 엔진을 빌드하는 데 필요한 핵심 포즈 예측, 프레임 타이밍 및 공간 입력 기능을 제공합니다.

OpenXR API에 대해 알아보려면 OpenXR 1.0 사양, API 참조빠른 참조 가이드를 검사. 자세한 내용은 Khronos OpenXR 페이지를 참조하세요.

HoloLens 2 전체 기능 집합을 대상으로 하려면 OpenXR 1.0 코어 이외의 추가 기능(예: 관절 손 추적, 시선 추적, 공간 매핑 및 공간 앵커)을 가능하게 하는 공급업체 간 및 공급업체별 OpenXR 확장도 사용합니다. 자세한 내용은 올해 하반기에 출시될 확장에 대한 아래 로드맵 섹션 을 참조하세요.

OpenXR 자체는 혼합 현실 엔진이 아닙니다. 대신, OpenXR을 사용하면 Unity 및 Unreal과 같은 엔진이 이식 가능한 코드를 한 번 작성하여 해당 플랫폼을 빌드한 공급업체와 관계없이 사용자의 홀로그램 또는 몰입형 디바이스의 네이티브 플랫폼 기능에 액세스할 수 있습니다.

로드맵

OpenXR 사양은 런타임 구현자가 기본 OpenXR 1.0 사양에 정의된 핵심 기능 이외의 추가 기능을 노출할 수 있도록 하는 확장 메커니즘을 정의합니다.

OpenXR 확장에는 다음과 같은 세 가지 종류가 있습니다.

  • 공급업체 확장(예 XR_MSFT_...: ): 하드웨어 또는 소프트웨어 기능에서 공급업체별 혁신을 가능하게 합니다. 모든 런타임 공급업체는 언제든지 공급업체 확장을 도입하고 제공할 수 있습니다.
  • 공급업체 EXT 간 확장: 여러 회사에서 정의하고 구현하는 공급업체 간 확장입니다. 관심 있는 회사 그룹은 언제든지 EXT 확장을 도입할 수 있습니다.
  • 공식 KHR 확장: 공식 크로노스 확장은 핵심 사양 릴리스의 일부로 비준되었습니다. KHR 확장에는 코어 사양 자체와 동일한 라이선스가 적용됩니다.

Windows Mixed Reality OpenXR 런타임은 OpenXR 애플리케이션에 MSFT 전체 HoloLens 2 기능 집합을 제공하는 및 EXT 확장 집합을 지원합니다.

기능 영역 확장 가용성
시스템 + 세션 OpenXR 1.0 코어 사양:
XrInstance, XrSystemId, XrSession
참조 공간(보기, 로컬, 스테이지) OpenXR 1.0 코어 사양:
XrSpace
구성 보기(모노, 스테레오) OpenXR 1.0 코어 사양:
XrView...
스왑 체인 + 프레임 타이밍 OpenXR 1.0 코어 사양:
XrSwapchain... + xrWaitFrame
컴퍼지션 계층
(프로젝션, 쿼드)
OpenXR 1.0 코어 사양:
XrCompositionLayer... + xrEndFrame
입력 및 촉각 OpenXR 1.0 코어 사양:
XrAction...
Direct3D 11/12 통합 공식 KHR 확장 릴리스:
XR_KHR_D3D11_enable
XR_KHR_D3D12_enable
바인딩되지 않은 참조 공간
(세계적 규모의 환경)
MSFT 확장이 릴리스됨:
XR_MSFT_unbounded_reference_space
Spatial Anchors

MSFT 확장이 릴리스됨:
XR_MSFT_spatial_anchor

MSFT 런타임 108에서 릴리스된 확장:(HoloLens 2만 해당)
XR_MSFT_spatial_anchor_persistence

손 조작
(그립/조준 포즈, 에어 탭, 잡기)

HoloLens 2 전용

MSFT 확장이 릴리스됨:
XR_MSFT_hand_interaction
손 관절 + 손 메시

HoloLens 2 전용

EXT 확장이 릴리스됨:
XR_EXT_hand_tracking

MSFT 확장이 릴리스됨:
XR_MSFT_hand_tracking_mesh

시선 응시

HoloLens 2 전용

EXT 확장이 릴리스됨:
XR_EXT_eye_gaze_interaction
Mixed Reality 캡처
(PV 카메라에서 세 번째 렌더링)

HoloLens 2 전용

MSFT 릴리스된 확장:
XR_MSFT_secondary_view_configuration
XR_MSFT_first_person_observer
모션 컨트롤러 상호 작용 프로필
(Samsung Odyssey 및 HP Reverb G2)
MSFT 런타임 103에서 릴리스된 확장:
XR_EXT_samsung_odyssey_controller
XR_EXT_hp_mixed_reality_controller
모션 컨트롤러 렌더링 모델 MSFT 런타임 104에서 릴리스된 확장:
XR_MSFT_controller_model
장면 이해(평면, 메시)

HoloLens 2 전용

MSFT 런타임 106에서 릴리스된 확장:
XR_MSFT_scene_understanding
XR_MSFT_scene_understanding_serialization
컴퍼지션 계층 다시 프로젝션 모드
(자동 평면 또는 방향 전용 다시 프로젝션)
MSFT 런타임 106에서 릴리스된 확장:
XR_MSFT_composition_layer_reprojection
다른 Mixed Reality SDK와의 Interop
(예: QR)
MSFT 확장이 릴리스됨:
XR_MSFT_spatial_graph_bridge
UWP CoreWindow API와의 Interop
(예: 키보드/마우스의 경우)
MSFT 런타임 103에서 릴리스된 확장:
XR_MSFT_holographic_window_attachment
레거시 Mixed Reality WinRT API와의 Interop
(예: SpatialAnchorTransferManager))

MSFT 런타임 105에서 릴리스된 확장:
XR_MSFT_perception_anchor_interop

기타 공급업체 간 확장

공식 KHR 확장 릴리스:
XR_KHR_composition_layer_depth
XR_KHR_visibility_mask
XR_KHR_win32_convert_performance_counter_time
XR_KHR_composition_layer_color_scale_bias

EXT 릴리스된 확장:
XR_EXT_win32_appcontainer_compatible
XR_EXT_debug_utils

이러한 확장 중 일부는 공급업체별 MSFT 확장으로 시작될 수 있지만 Microsoft 및 기타 OpenXR 런타임 공급업체는 이러한 많은 기능 영역에 대한 공급업체 EXT 간 또는 KHR 확장을 설계하기 위해 협력하고 있습니다. 공급업체 간 확장을 사용하면 핵심 사양과 마찬가지로 런타임 공급업체에서 이러한 기능에 대해 작성하는 코드를 이식할 수 있습니다.

OpenXR은 어디에서 사용할 수 있나요?

혼합 현실 헤드셋을 착용한 사용자가 재생 중인 Minecraft의 스크린샷

Minecraft의 새로운 RenderDragon 엔진은 OpenXR을 사용하여 데스크톱 VR 지원을 구축했습니다!

Microsoft는 Unity 및 Epic Games와 협력하여 HoloLens 2 뿐만 아니라 HP의 새로운 Reverb G2 헤드셋을 포함한 PC VR의 전체 범위에 걸쳐 혼합 현실의 미래가 열려 있는지 확인합니다. OpenXR은 Minecraft 및 Microsoft Flight Simulator와 같은 주요 타이틀에 대한 공급업체 간 VR 지원을 제공합니다. HoloLens(1세대)용 개발에 대한 자세한 내용은 릴리스 정보를 참조하세요.

Unity, Unreal Engine 또는 자체 엔진에서 OpenXR을 시작하는 방법을 알아보려면 다음을 읽어보세요.

Unity의 OpenXR

HoloLens 2 및 Windows Mixed Reality 개발에 권장되는 Microsoft의 현재 권장 Unity 구성은 Mixed Reality OpenXR 플러그 인이 있는 Unity 2020.3 LTS입니다. 이 플러그 인에는 손/시선 추적, 공간 앵커 및 HP Reverb G2 컨트롤러를 포함하여 HoloLens 2 및 Windows Mixed Reality 헤드셋의 전체 기능을 밝히는 OpenXR 확장에 대한 지원이 포함되어 있습니다. MRTK-Unity MRTK 2.7을 기준으로 OpenXR을 지원합니다. Unity 2020 및 OpenXR을 시작하는 방법에 대한 자세한 내용은 Unity 버전 및 XR 플러그 인 선택을 참조하세요.

HoloLens(1세대)용으로 개발하는 경우 레거시 WinRT API 백 엔드와 함께 Unity 2019.4 LTS 를 계속 사용해야 합니다. Unity 2019 앱에서 새 HP Reverb G2 컨트롤러를 대상으로 하는 경우 HP Reverb G2 입력 문서를 참조하세요.

Unity 2021.3 LTS부터 OpenXR은 HoloLens 2 및 Windows Mixed Reality 헤드셋을 대상으로 하는 유일한 지원 Unity 백 엔드가 됩니다.

Unreal Engine의 OpenXR

Unreal Engine 4.23은 OpenXR 1.0에 대한 미리 보기 지원을 출시한 최초의 주요 게임 엔진 릴리스입니다. 이제 Unreal Engine 4.26에서는 Unreal Engine의 기본 제공 OpenXR 지원을 통해 HoloLens 2, Windows Mixed Reality 및 기타 데스크톱 VR 헤드셋에 대한 지원을 사용할 수 있습니다. Unreal Engine 4.26은 또한 Microsoft의 OpenXR 확장 플러그 인을 지원하여 손 상호 작용 및 HP Reverb G2 컨트롤러 지원을 지원하여 HoloLens 2 및 Windows Mixed Reality 헤드셋의 전체 기능 집합을 조명합니다. Unreal Engine 4.26은 현재 Epic Games Launcher에서 사용할 수 있으며 MRTK-Unreal 0.12는 OpenXR 프로젝트를 지원합니다.

네이티브 개발을 위한 OpenXR

HoloLens 2 OpenXR을 사용하여 개발하거나 데스크톱에서 몰입형 VR 헤드셋을 Windows Mixed Reality 수 있습니다. 헤드셋에 액세스할 수 없는 경우 HoloLens 2 에뮬레이터 또는 Windows Mixed Reality 시뮬레이터를 대신 사용할 수 있습니다.

HoloLens 2 또는 Windows Mixed Reality VR 헤드셋용 OpenXR 애플리케이션 개발을 시작하려면 OpenXR 개발을 시작하는 방법을 참조하세요.

현재 OpenXR을 사용하는 실제 애플리케이션의 예제와 함께 OpenXR API의 모든 주요 구성 요소를 둘러보려면 다음 60분 연습 비디오를 검사.

추가 정보