-
Notifications
You must be signed in to change notification settings - Fork 39
Feature_MixedRealityCapture
Here is a short video created with the Godot Quest MRC Plugin:
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:
The Oculus Documentation on MRC setup can be found here: https://developer.oculus.com/documentation/mrc/mr-quest/
- 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/)
- 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)
- Enable the **INTERNET **permission in your export settings (required for the OBS plugin to connect to your quest)
- Drag the Feature_MixedRealityCapture onto your OQ_ARVROrigin node in the Scene you would like to enable/use MRC
- 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
- done. now you should be able to connect to your Godot App via the OBS plugin
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.
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.
If you would like to know more details about how Oculus implemented MRC on the quest you can watch this informative talk from OC6: