EasyAR 헤드셋 및 글래스 지원
EasyAR SDK는 강력한 크로스플랫폼 AR 기능을 제공하며, 그 설계 개념은 새로운 spatial computing 디바이스인 헤드셋에도 잘 맞습니다. 이 문서는 EasyAR가 헤드셋 디바이스를 어떻게 지원하는지, 그리고 개발자가 이러한 기능을 이용해 immersive experience를 어떻게 구축하는지 설명합니다.
용어 설명
이 문서에서 "headset" 또는 "Headset"은 머리에 착용하며 immersive 또는 see-through interaction을 지원하는 유형의 컴퓨팅 디바이스를 의미합니다. 이러한 디바이스는 사용자의 눈앞에 virtual content를 표시하여 augmented reality (AR) 또는 mixed reality (MR) 경험을 가능하게 합니다. 여기에는 다음이 포함됩니다.
- Optical See-Through, OST Headset: 반투명 렌즈를 통해 현실 세계를 직접 볼 수 있습니다.
- Video See-Through, VST Headset: camera로 현실 세계를 캡처해 video stream 형태로 보여줍니다. 일반적으로 헤드셋은 AR glasses, MR glasses 또는 VR helmet이라고도 부릅니다. 명칭은 vendor와 디바이스 종류에 따라 다를 수 있지만, 이 문서에서는 이 유형의 디바이스를 일관되게 "headset"으로 부릅니다.
헤드셋의 기본 동작 원리
EasyAR가 헤드셋을 어떻게 지원하는지 이해하려면 먼저 헤드셋 디바이스의 기본 동작 흐름을 알아야 합니다.
- 환경 인식: 여러 개의 내장 camera, depth sensor(iToF 등), inertial measurement unit (IMU)을 통해 주변 환경의 기하 구조, 조명 상태, 물체 표면을 실시간으로 인식합니다.
- spatial computing: 센서 데이터에 기반해 SLAM system이 사용자의 6DoF pose(위치 + 방향)를 실시간으로 추적합니다.
- 콘텐츠 rendering 및 표시: 디바이스 pose에 맞춰 3D content(모델과 효과 등)를 rendering하고 화면에 투영합니다. VR mode에서는 순수한 virtual image만 표시하고, AR/MR mode에서는 virtual image를 실제 환경(VST camera image 또는 OST see-through 배경)과 합칩니다.
- interaction system: 사용자의 명령을 받아 controller, gesture recognition, 음성, eye tracking 등으로 응답합니다.
EasyAR의 헤드셋 지원 원리
EasyAR는 헤드셋의 native spatial tracking이나 rendering pipeline을 대체하지 않고, 그것들과 함께 동작하는 "spatial computing enhancer"입니다. 전문 AR algorithm engine으로서 다양한 AR 시나리오에 대한 spatial perception과 computing capabilities를 제공하고, 디바이스의 원래 시스템과 효율적으로 협력합니다.
| Scope of Responsibility | Role Division |
|---|---|
| 6DOF head tracking, display rendering, basic interaction 등 | 헤드셋의 native SDK/runtime |
| image/object recognition, tracking, large-scale spatial positioning 같은 고급 인식 기능 | EasyAR SDK |
EasyAR SDK는 image/object recognition, sparse reconstruction, dense reconstruction, large-scale spatial positioning 같은 세계 이해를 위한 핵심 AR 기능을 제공합니다. 이는 세상을 "이해"하고 헤드셋 앱에 virtual content를 어디에 배치해야 하는지 알려주는 역할을 합니다.
EasyAR SDK는 보통 Unity나 Unreal과 같은 헤드셋 앱 개발 framework에 plugin 또는 library로 통합됩니다. 디바이스 시스템에서 원시 data stream을 받아 처리하고 계산한 뒤, 디바이스의 spatial coordinate system에 대한 pose matrix를 출력합니다. 최종적으로 헤드셋 rendering pipeline이 virtual object를 올바른 위치에 그립니다.
지원 현황과 구현 방식
EasyAR는 주요 헤드셋 개발 platform을 폭넓게 지원하며, 주로 두 가지 방식으로 구현됩니다.
- Unity/Unreal Engine을 통해: 가장 일반적이고 권장되는 방법입니다. 헤드셋 vendor는 보통 전용 Unity/Unreal plugin 또는 XR SDK를 제공합니다. EasyAR는 이러한 SDK에 자연스럽게 통합될 수 있습니다.
- Native platform을 통해: 극한의 성능이나 특정 native 개발이 필요한 경우 C++, Java, Objective-C의 EasyAR native interface를 사용할 수 있습니다. 보통 디바이스의 저수준 데이터와의 interface docking은 개발자가 직접 처리해야 합니다.
EasyAR는 Unity를 통해 이미 여러 주요 헤드셋 platform에서 테스트와 검증을 마쳤습니다. 현재 지원이 확정된 디바이스는 다음과 같습니다.
| 헤드셋 장치 모델 | Vendor SDK and version requirement | System and firmware version requirement |
|---|---|---|
| Apple Vision Pro | ARKit in visionOS | visionOS 2 이상 |
| PICO 4 Ultra1 | PICO Unity Integration SDK 3.4.0 이상 | 제조사 SDK가 지원한다고 명시한 버전2 |
| PICO Space Pro1 | PICO Unity Integration SDK 3.4.0 이상 | 제조사 SDK가 지원한다고 명시한 버전2 |
| Meta Quest 3/3S3 | Meta MRUK (Mixed Reality Utility Kit) 201 이상 | 제조사 SDK가 지원한다고 명시한 버전2 |
| Rokid Max Pro (Rokid AR Studio or other officially supported Rokid usage methods) |
Rokid Unity OpenXR Plugin 3.0.3 이상 | 제조사 SDK가 지원한다고 명시한 버전2 |
| XREAL Air2 Ultra | XREAL SDK 3.1 이상 | 제조사 SDK가 지원한다고 명시한 버전2 |
| Xrany X1 | Xrany Yuanni SDK | 제조사 SDK가 지원한다고 명시한 버전2 |
참고
Rokid Max Pro는 Rokid Unity OpenXR Plugin을 통해 Rokid UXR 3를 지원할 수 있지만, 특히 cross-device 사용에서는 XR Interaction Toolkit 사용을 권장합니다.
중요
Apple Vision Pro와 XREAL은 사용을 위해 각각의 enterprise authorization이 필요합니다. 궁금한 점이 있으면 영업 부서에 문의하십시오.
- Apple Vision Pro의 interface authorization 제한 때문에 Apple enterprise API license가 있는 디바이스만 지원됩니다.
- XREAL의 interface authorization 제한 때문에 enterprise authorization이 있는 디바이스만 지원됩니다.
위에 언급되지 않은 다른 vendor의 헤드셋 디바이스에는 EasyAR가 custom camera 같은 확장 접근 방식을 제공합니다. 연결은 Create an EasyAR Headset Extension Package를 참고하여 직접 완료할 수 있습니다.
보통 다음 단계를 포함합니다.
- 디바이스 개발 권한 획득: 대상 헤드셋의 developer account와 SDK documentation을 신청합니다.
- 센서 데이터 스트림 획득: 디바이스 SDK에서 camera images(video frames)와 camera parameters 같은 필요한 데이터를 얻습니다.
- EasyAR API 호출: EasyAR의 low-level API를 사용해 얻은 sensor data를 EasyAR
FrameSource에 전달하여 처리합니다. - 계산 결과 획득 및 적용: EasyAR engine에서 계산 결과(camera pose)를 가져와 3D rendering engine에 적용합니다.
이 과정을 돕기 위해 자세한 개발 가이드와 sample code를 제공합니다. 통합 중 문제가 생기면 developer community에서 기술 지원을 받을 수 있습니다.
사용 가능한 핵심 기능
헤드셋 디바이스에서는 EasyAR의 기능 matrix를 충분히 활용해 풍부한 spatial application을 만들 수 있습니다.
- Planar Image Tracking: 미리 정한 이미지를 인식하고 추적하며, 그 위에 동적 video나 3D model을 겹쳐 표시합니다.
- 3D Object Tracking: 장난감이나 제품 상자 같은 미리 정의된 3D model을 인식하고 추적하며, virtual content가 그것과 상호작용하게 합니다.
- Sparse Spatial Map: 주변 환경을 스캔해 3D visual map을 생성하고 visual positioning과 tracking 기능을 제공합니다. 생성된 map은 저장하거나 여러 디바이스 간에 실시간 공유할 수 있습니다.
- Dense Spatial Map: 환경을 스캔해 dense point cloud map과 mesh model(Mesh)을 생성하고, virtual object와 real object 사이의 physical occlusion을 구현해 몰입감을 크게 높입니다.
- Cloud Image Recognition: EasyAR의 cloud database에 연결해 많은 이미지를 인식하고 관리할 수 있어 전시와 교육 같은 시나리오에 적합합니다.
- Mega Large-Scale Spatial Positioning: 도시 규모의 spatial computing solution으로, EasyAR의 cloud positioning service에 연결해 안정적이고 빠르며 정확한 positioning과 tracking을 제공하고 AR 경험의 범위를 크게 넓힙니다.
플랫폼별 가이드
특정 platform에서 빠르게 시작할 수 있도록 자세한 multi-platform integration guides를 마련했습니다. 아래 탭을 눌러 해당 platform의 quick-start tutorial을 확인하세요.
- Introduction
- Using Headset Samples
- Enabling Headset Support
- Project Configuration
- Create an EasyAR Headset Extension Package
-
EasyAR Sense Unity Plugin PICO Extension 4000.1 이상 + EasyAR Sense Unity Plugin 4003.1 이상을 사용해야 합니다. 이전 버전은 PICO 4 Ultra Enterprise 디바이스만 지원하며 PICO의 enterprise interface authorization이 필요합니다.↩↩
-
시스템 및 펌웨어 호환성은 제조사가 유지 관리합니다. EasyAR는 제조사 SDK에 대한 호환성 지원만 제공합니다.↩↩↩↩↩↩
-
EasyAR Sense Unity Plugin 4003.1.1 이상이 필요합니다.↩