fnwinter.github.io blog

OpenXR runtime

OpenXR 정리

  • 이전에 설명했듯이, OpenXR은 API Spec이다. 그래서 실제 구현체는 각 벤더들이 해야 한다. 그래서 실제로 어떻게 구현 되어 있는지 알 수 있는 방법은 없다. 벤더들이 자신들이 구현한 Runtime은 소스 공개를 안하니까.
  • 그런데 OpenXR Spec을 정의 하면서 Khronos와 collabora는 같이 Runtime도 개발하게 된다.
  • 그래서 나온 Open Source OpenXR Runtime이 Monado이다.
  • https://monado.dev/
  • Monado 소스를 분석하면, OpenXR이 어떻게 동작하는지 조금 알 수 있다.
  • 그래서 이번에는 Monado 빌드 하고 실행해 보는 걸 해보려고 한다.

Monado 구성

  • Monado 는 Runtime이기 때문에 Monado 하나만 가지고 동작 시킬 수 없다. Monado를 실행하기 위해서는 Monado의 so 파일을 Load하고 OpenXR API와 연결해 주는 Loader도 필요하고, 안드로이드의 경우에는 어떤 OpenXR Runtime을 사용할지 정해주는 Broker도 필요하다. 그리고 Blender나 Godot 같은 엔진에서 OpenXR 을 사용할 수 있도록 해 주는 Plugin 도 필요하다.
  • OpenXR Android Brkoer : 어떤 Runtime을 실행할지 선택할 수 있도록 도와줌
  • OpenXR Loader : Application이 Runtime을 Load 하고 API 를 호출 할 수 있도록 도와줌
  • OpenXR Plugin : Godot 같은 엔진에서 OpenXR 을 사용할 수 있도록 도와주는 Plugin
  • OpenXR Runtime : 실제로 OpenXR API Spec대로 구현 된 구현체

Monado 빌드

Monado 코드를 보면서…

  • 이제 아직 지원하지 않는 Monado Unity Plugin이나 Unreal Plugin도 만들 수 있을꺼 같다. 그리고 전체적으로 OpenXR이 어떻게 동작하고 AR/VR을 위해서는 무슨 기능이 필요한지 알 것 같다.
  • 이제 각각의 기능에 대해서 세부적으로 좀 정리를 해봐야 겠다.
comments powered by Disqus