Has anyone managed to enable the passthrough function?
I've tried the Oculus Integration 31.0 passthrough sample scenes, but I'm getting the error "Failed to initialize Insight Passthrough. Passthrough will be unavailable." OVRManager passthrough related options are enabled. I confirm I'm using Oculus runtime v31 and OVRPlugin 1.63.0, and the experimental system property is enabled.
<uses-feature android:name="com.oculus.experimental.enabled" android:required="true" />
<uses-feature android:name="com.oculus.feature.PASSTHROUGH" android:required="true" />
>adb shell getprop debug.oculus.experimentalEnabled
It seems OVRP_1_63_0.ovrp_InitializeInsightPassthrough() fails.
Solved! Go to Solution.
I've just found the Passthough API only works on IL2CPP/ARM64. It might be one of the pitfalls.
I brought confusion by starting this thread, so I wrote a step-by-step guide to build the passthrough scene.
- Create a new 3D template project with Unity 2021.1
- Open Build Settings and switch to Android platform
- Open Project Settings and switch "Color Space" to Linear
- IMPORTANT: And change "Script Backend" to IL2CPP and enable "ARM64" Target Architectures only
- Open Project Settings > Install XR Plugin Management and click "Install XR Plugin Management", enable "Oculus" plugin
- Import Oculus Integration 31.0 (and click "Yes" "Restart" "Upgrade" when dialogs appear)
- Open the "AugumentedObjects" scene in Assets/Oculus/SampleFramework/Usage/Passthrough/Scenes
- IMPORTANT: Select OVRManager and enable "Experimental Features Enabled" and "Passthrough Capability Enabled" (I feel the line "Requires Experimental Passthrough Capability enabled in the project settings" below is a bit confusing)
- IMPORTANT: And you need to enable the Quest experimental system property. This property will be reset when you reboot the Quest.
- Open Package Manager and install "Android Logcat" from Unity Registry
- Open "Window > Analysis > Android Logcat" (make sure Quest is connected)
- Select "Tools > Open Terminal" from the top-right button
- Execute "adb shell setprop debug.oculus.experimentalEnabled 1"
- Back to Unity and "Build and Run"
Now it should work 🙂
Hi, I've solved my problem. It works!
Looks like disabling "Show Splash Screen" causes the passthrough initialization failure. Here is the log.
"Show Splash Screen" disabled
2021/08/12 22:05:10.535 28655 28721 Info OpenXR_Passthrough ------------ xrCreatePassthroughLayerFB -----------
2021/08/12 22:05:10.535 28655 28721 Warn Telemetry [OpenXR_Passthrough] createCompositionLayer failed; -5
2021/08/12 22:05:10.535 28655 28721 Error OVRPlugin Failed to create a passthrough layer with error -1000118000 (Software/OculusSDK/Integrations/OVRPlugin/Main/Src/Util/InsightMrManager.cpp:205)
"Show Splash Screen" enabled
2021/08/12 22:06:20.774 28892 28914 Info OpenXR_Passthrough xrCreatePassthroughFB: Created Insight MR Passthrough feature
2021/08/12 22:06:20.774 28892 28914 Info OVRPlugin [Insight MR] Successfully initialized passthrough.
This page helped me a lot!
Step 1: make sure the device is expermintal enabled;
adb shell setprop debug.oculus.experimentalEnabled 1
Step 2: Enabled experimental in Unity (this isn't default in the test scenes!!!)
OVRCameraRig -> Experimental Features Enabled and Passthrough Capability Enabled