Skip to content

Feature_MixedRealityCapture

Holger Dammertz edited this page May 16, 2020 · 3 revisions

Feature_MixedRealityCapture

Here is a short video created with the Godot Quest MRC Plugin:

Video of the Godot MRC Plugin in action

In the current state (written 08.05.2020) it is also required to use the prebuild godot_oculus_mobile version that is part of this repository in https://github.com/NeoSpark314/godot_oculus_quest_toolkit/tree/master/addons/godot_ovrmobile and the prebuild https://github.com/NeoSpark314/godot_oculus_quest_toolkit/tree/master/bin/android_debug.apk export template (set it in your quest export settings under Export -> Options -> Custom Template -> Debug) as there are added functions/fixes required that are not yet part of the main godot branch.

For a general introduction on how to use the Oculus MRC with the Quest checkout this great tutorial by Virtual Reality Oasis:

Virtual Reality Oasis Quest MRC Tutorial

The Oculus Documentation on MRC setup can be found here: https://developer.oculus.com/documentation/mrc/mr-quest/

Hot to setup your Godot Oculus Quest Application for MRC:

  1. Follow the setup process for MRC linked above and test MRC with one of the officially supported Apps to make sure everything works in general (For example with SuperHot; full list is here: https://developer.oculus.com/documentation/mrc/mr-quest-supported-app/)
  2. Make sure that you use the experimental branch of the toolkit and are using the included godot_oculus_mobile addon and export template (android_debug.apk)
  3. Enable the **INTERNET **permission in your export settings (required for the OBS plugin to connect to your quest)
  4. Drag the Feature_MixedRealityCapture onto your OQ_ARVROrigin node in the Scene you would like to enable/use MRC
  5. Copy the mrc.xml camera calibration file to your applications files directory (see below for more details); you probably want to disable ‘clear all data’ in your export settings so you do not need to repeat this after each deploy
  6. done. now you should be able to connect to your Godot App via the OBS plugin

Copying the mrc.xml calibration file

The calibration file mrc.xml is created by the Oculus MRC Tool and stored on your Quest device. It contains the extrinsic and intrinsic data of your camera. You can download the file from the quest via

adb pull /storage/emulated/0/Android/data/com.oculus.MrcCameraCalibration/files/mrc.xml mrc.xml

and then put it into your applications local storage (exchange the path with your application name) via

adb push mrc.xml /storage/emulated/0/Android/data/org.dammertz.vr.godot_oculus_quest_toolkit_demo/files/

You want to also disable Clear Previous Install in your export settings so you do not need to copy this file again after each deploy.

Reading the adb logcat output

With adb logcat -s godot:* GodotOVRMobile:* OVRMrcLib:* vrDebug:* you can read your application output. You should find a line that says

D OVRMrcLib: MRC config file found: /storage/emulated/0/Android/data/org.dammertz.vr.godot_oculus_quest_toolkit_demo/files/mrc.xml

This means that the OVRMrcLib was successful in finding your camera calibration data

The following output (created by the MRC gd script) indicates that OVRMrcLib is running in the background and waiting for an outside connection for streaming:

I godot   : ovr_mrc.is_mrc_enabled() = True
I godot   : ovr_mrc.is_mrc_activated() = False
I godot   : ovr_mrc.get_external_camera_count() = 1

If you get the following error message:

OVRMrcLib: [MediaManager] Unable to find server address (C:\cygwin\data\sandcastle\boxes\trunk-hg-ovrsource-full\Software\OculusSDK\Integrations\OVRPlugin\Main\1stParty\OVRMrcLib\Src\Util\MediaManager.cpp:648)

the only solution I found so far was to reboot my Oculus Quest (adb reboot); Then this error was gone; but it reappeared frequently again when I changed for example the mrc.xml file.

More Information

If you would like to know more details about how Oculus implemented MRC on the quest you can watch this informative talk from OC6:

OC6 Quest MRC Talk