Home
home

소개

WXR이란?

WXR platform은 AFrame을 기반으로한 어플리케이션이다. WXR은 웹브라우저를 통해 다자간 XR 협업을 가능하게 해준다. 이용자는 언제든지 3D, VR, AR 모드 버튼을 눌러 씬과 상호작용하는 방법을 변경할 수 있다. 3D모드에서는 키보드와 마우스를 통해 씬과 상호작용할 수 있고, 미리 준비된 컴포넌트들을 이용하여 오브젝트의 트랜스폼을 포함하여 다양한 기능들을 할당할 수 있다. VR 모드는 6DoF를 지원하는 대부분의 HMD 및 컨트롤러와 호환된다. VR모드는 한손이나 양손을 사용하여 오브젝트를 변형할 수 있다. AR모드에서는, 이미지 마커 트래킹을 통해 그것과 연결된 오브젝트를 이동시키거나 회전시킬 수 있다. 일반적으로 3D모드는 씬 저작을 위해 선택되고 VR/AR모드는 씬 플레이를 위해 선택될 것이다. 그러나 WXR은 씬 저작과 씬 플레이를 명확하게 구분하지 않으며, 어떤 모드에서든 씬에 어떠한 수정을 가하면 동일한 작업으로 취급되어 서버를 통해 중계된다. 이와같이, 이용자는 씬을 매개체로 하여 간접적인 상호작용을 경험하고 협업을 위한 직관적인 시각정보를 얻게 된다.
다음 그림은 WXR Platform의 엔드포인트 구조를 나타낸다. 하늘색 부분은 WXR Platform에서 직접 구현한 모듈을 의미한다.
WXR은 AR 인터랙션을 위해 이미지 트래킹 기능을 활용하는데 이것은 WebXR Device API에 포함되지 않는다. 이러한 이유로, WXR은 iOS와 Android에서의 AR API를 사용하는 네이티브 코드 부분을 필요로 한다. 이것을 AR 어댑터라고 부르며 각 타겟 플랫폼을 위해 하이브리드 앱의 형태로 제공된다.

특징

다자간 실시간 세션
WXR은 여러사람들이 함께 협업할 수 있는 3D 씬을 내포하는 워크스페이스를 제공한다. 워크스페이스에서는 세션에 참여중인 각 유저들의 위치 및 자세, 씬에 있는 모든 오브젝트들의 트랜스폼 데이터와 컴포넌트들, 씬 계층구조의 변경들은 실시간으로 공유된다. 세션은 참여중인 유저가 존재할 때만 살아있고 모든 유저가 세션에서 떠나면 소멸한다. 세션에 저장된 작업 내역은 나중에 들어오는 유저들에게도 공유된다. 따라서 중간에 참여한 유저도 동기화된 씬을 볼 수 있다. 그러나 그것은 휘발성 데이터이기 때문에 세션이 소멸할때 함께 파괴된다. 작업 내역을 보존하고 싶다면 별도의 저장 절차를 수행해야 한다.
세 가지 상호작용 모드 옵션
WXR은 씬과 상호작용하기 위해 3D모드, VR모드, AR모드 이렇게 세 가지 모드를 지원한다. 3D 모드는 씬 저작에 적합한 반면, VR 모드와 AR 모드는 3D 씬을 통한 협업에 적합하다. 3D모드에서는, GUI를 통해 오브젝트의 컴포넌트 프로퍼티들을 수정할 수 있으며, 씬에 새로운 오브젝트를 추가하거나 삭제할 수 있다. 그리고 오브젝트들 간의 관계를 변경할 수도 있다. 또한 기즈모를 통해 오브젝트의 변형도 할 수 있다. VR모드에서는, 한손 컨트롤러 또는 양손 컨트롤러 조작으로 직관적인 오브젝트 변형을 수행할 수 있다. AR모드에서는, 이미지 트래킹을 기반으로 실제 사물을 움직이거나 회전시키는 것을 3D 씬에 반영할 수 있다. 세션 참여 중에는 언제든지 모드 변경이 가능하지만 VR 모드를 위해서는 6DoF를 지원하는 VR 디바이스가 연결되어있어야하며 AR 모드를 위해서는, 아래 나열된 각 플랫폼 별로 제공되는 WXR용 하이브리드 앱을 통해서 접속된 상태여야 한다.
AR 모드를 이용할 수 있는 플랫폼 목록
Android 8.0 or later
IOS 15.0 or later
씬과 애셋에 대한 보안 모든 워크스페이스들은 역할 기반 접근 제어가 적용된다. 초대 권한을 가진 멤버에 의해 초대 받아야만 워크스페이스에 가입할 수 있고 퍼미션 관리 권한을 갖는 멤버로부터 writer 이상의 역할을 부여받아야만 씬에서 상호작용이 가능하다. 씬을 저작할때 애셋을 로드하기 위해 외부 주소를 사용할 수 있으나, WXR 서버에 내장된 콘텐츠 관리 시스템에 업로드되어 있는 애셋을 사용하면 화이트리스트 기반의 접근제어도 가능하다.
애셋 접근 제어
애셋은 public expose타입과 private expose타입으로 나뉘며 private expose 타입의 애셋들은 임의적 접근 통제(DAC, Discretionary Access Control)가 적용된다.
모든 유저는 유저명과 같은 이름의 private 디렉토리를 할당받으며, private 디렉토리의 자식 애셋들은 모두 private 속성은 상속받는다. private 애셋은 그 애셋의 서브트리에 접근할 권한을 부여할 유저를 나타내는 화이트리스트를 가지고 있고 애셋의 소유주만 그 화이트리스트를 수정할 수 있다.