Severe Passthrough Distortion After Casting – Tiny Controllers, Compressed Floor
Hi everyone, I’m experiencing a persistent passthrough distortion issue on my Quest 3 that started immediately after casting. Here’s a summary of what’s happening: Symptoms: Controllers and hands appear tiny in passthrough. Floor grid looks squished/compressed and sits at the wrong height. Cannot properly set floor level—boundary calibration seems broken. Issue is only present in passthrough or mixed reality. Everything looks normal in VR games (no tracking issues). Troubleshooting I’ve already done: Cleared Guardian boundary history. Fully rebooted the headset (multiple times).Re-set Guardian in a clean, well-lit area. Let the headset idle in passthrough to force recalibration. Factory reset via both the settings menu and bootloader. Attempted firmware update (was already up to date). Verified the issue persists without casting. Confirmed tracking and controller alignment are perfect in VR.35Views0likes3CommentsTracked hand pushing away menu (canvas) attached to other hand
I am keeping my left hand almost completely still here in the video demo below, but something pushes the left hand or the menu away when I get the right hand near the other hand/ menu (hard to tell if tracking issue due to other hand being near left hand vs hand interacting with menu or menu item colliders or rigibodies. Video of error in demo Video of unity project setup I have an empty gameobject called 'menu-hand_attatcher' with this script on: using System.Collections; using System.Linq; using UnityEngine; using Oculus.Interaction; // for OVRHand & OVRSkeleton public class AttachMenuToHand : MonoBehaviour { [Tooltip("The disabled Canvas or prefab you want to spawn")] public GameObject menuPrefab; // assign your menu_0 prefab here [Tooltip("Which bone/joint to anchor the menu to")] public OVRSkeleton.BoneId anchorJoint = OVRSkeleton.BoneId.Hand_WristRoot; [Tooltip("Offset from that joint in metres")] public Vector3 localOffset = new Vector3(0f, 0.05f, 0.06f); private OVRHand hand; // we’ll find this automatically private bool attached; private void Awake() { // Auto-find the first active OVRHand in the scene (left or right) hand = FindFirstObjectByType<OVRHand>(); } private IEnumerator Start() { if (hand == null) { Debug.LogError("❌ No OVRHand component found anywhere in the scene!", this); yield break; } // Grab the OVRSkeleton attached to that hand OVRSkeleton skel = hand.GetComponent<OVRSkeleton>(); if (skel == null) { Debug.LogError("❌ OVRHand has no OVRSkeleton component!", this); yield break; } // Wait until the system has tracked the hand & built out all bones while (!hand.IsTracked || skel.Bones.Count == 0) { yield return null; } // Find the specific bone (wrist, index tip, etc.) by BoneId OVRBone targetBone = skel.Bones .FirstOrDefault(b => b.Id == anchorJoint); if (targetBone == null) { Debug.LogError($"❌ Couldn't find bone {anchorJoint} on the skeleton!", this); yield break; } Transform jointTransform = targetBone.Transform; // Spawn or enable the menu prefab GameObject menuInstance = menuPrefab.activeSelf ? menuPrefab : Instantiate(menuPrefab); menuInstance.SetActive(true); menuInstance.transform.SetParent(jointTransform, worldPositionStays: false); menuInstance.transform.localPosition = localOffset; menuInstance.transform.localRotation = Quaternion.identity; attached = true; } private void LateUpdate() { if (attached && Camera.main != null) { // Keep the menu facing the user’s camera transform.LookAt(Camera.main.transform.position, Vector3.up); } } } Anchor joint is set to XR Hand_Start Items in menus have collider + rigidbody (no gravity) to allow acting as trigger It's not so clear in the video but it appears going near the colliders for the buttons freaks it out and flips the menu around, but so does just crossing the right hand over the left (menu anchored to left wrist), or getting it near the canvas. So hard to tell what its interacting with. 1. What can I try using this method I'm already using? (I'm very new to Unity and coding so redoing things or doing them a different way could take me a lot of time and I don't have much) 2. If I were to - is there a better way to do this menu/canvas and hand attachment? Here's my script of my menus using UnityEngine; using UnityEngine.UI; public class MenuNavigator : MonoBehaviour { [Tooltip("Prefab of the submenu to open when this button is poked")] public GameObject submenuPrefab; // debounce flags private bool _hasActivated = false; private bool _ignoreNextTrigger = true; private Transform _canvasRoot; void Awake() { // cache the Canvas transform so we know where our menus live Canvas c = GetComponentInParent<Canvas>(); if (c != null) _canvasRoot = c.transform; else Debug.LogError("[MenuNavigator] No Canvas found!", this); } void OnEnable() { // every time this menu (and its buttons) become active: _ignoreNextTrigger = true; _hasActivated = false; } void OnTriggerEnter(Collider other) { if (_ignoreNextTrigger) return; // ignore the initial overlap if (_hasActivated) return; // and only fire once per exit/enter // 1) Spawn the next submenu prefab under the Canvas if (submenuPrefab != null && _canvasRoot != null) { var newMenu = Instantiate(submenuPrefab, _canvasRoot); newMenu.transform.localPosition = Vector3.zero; newMenu.transform.localRotation = Quaternion.identity; newMenu.transform.localScale = Vector3.one; } else { Debug.LogWarning("[MenuNavigator] Missing submenuPrefab or Canvas!", this); } // 2) Find *your* menu panel: the direct child of the Canvas Transform panel = transform; while (panel != null && panel.parent != _canvasRoot) { panel = panel.parent; } if (panel != null) { Destroy(panel.gameObject); } else { Debug.LogWarning("[MenuNavigator] Couldn't find menu panel root!", this); } _hasActivated = true; } void OnTriggerExit(Collider other) { // 1st exit after spawn turn off ignore, subsequent exits clear the activated flag: if (_ignoreNextTrigger) _ignoreNextTrigger = false; else _hasActivated = false; } } Many thanks :)6Views0likes0CommentsPassthrough activates on Unity App on Resume from Stand-By
So I've build an app using Unity and the SDK provided by Meta on Unity Asset Store. The verison is the 2022.3.44f1 and the application works on Quest 2 and Quest 3 devices. The problem is that when the devices go in Stand-By mode and then they "Wake up" again, the application starts to flicker showing the reality with the passthrough and the application in a very fast and flashing way. The only way to stop this is to press the Power Button and make them go sleep again and then retry waking them up hoping that the problem is gone, sometimes it works at first attempt other times it needs more times. Is there somethign that I can do? This last part is interesting: https://youtube.com/shorts/7aZ976HhLz4?feature=share I'm also posting a video recorded with the phone through the lens because when I tried to use the recording program of the Quest, this was properly recording the applicazion while the flickering was happening, so the passthrough was not visible in the recording. This let's me think that the problem doesn't come from the Unity application or other settings that I should do...417Views0likes1CommentUnity + OpenXR + OVRSpatialAnchor + Passthrough = Wobbly models
Previously we were using the Oculus XR Plugin with OVRSpatialAnchors and passthrough and all was working as intended. We needed to switch from the Oculus XR Plugin to OpenXR (for a separate package) and managed to get everything working except for when we put an OVRSpatialAnchor on a model with passthrough active, the model appears to be very wobbly compared to it's intended stable state. Once the spatial anchor has been removed off the model it appears much more stable but obviously doesn't have the other characteristics of having a spatial anchor that we need. Does anyone know how to fix this? I saw this post with a similar issue and I updated the AndroidManifest.xml via the Oculus tools menu but that did not seem to fix it. Potentially relevant details: Unity 2020.3.36 MRTK v2.7.2 OpenXR plugin v1.5.3 Oculus XR plugin v1.12.0 Oculus Integration v53.1 Minimum Android API Level: Android 10 (API level 29) OpenXR settings: Render mode: Single Pass Instanced/Multi-view Depth Submission Mode: Depth 16 Bit Interaction Profiles: Oculus Touch Controller Profile OpenXR Feature Groups: Hand Tracking MetaXR Feature Oculus Quest Support I have tried turning off passthrough and saw that the models became stable again but that is not acceptable. I tried updating the AndroidManifest.xml as stated in the linked post but that did not change anything. My code hasn't changed going from the Oculus XR Plugin to the OpenXR Plugin but it can be summed up to just adding the OVRSpatialAnchor component: model.AddComponent<OVRSpatialAnchor>();2.6KViews0likes2CommentsBug report - Half transparent materials leak Passthrough layer over solid objects
I am kindly asking the community for the help and Meta staff to take care of this bug report or redirect me to the better place to submit the bug report. Possible duplicate of: https://communityforums.atmeta.com/t5/Unity-VR-Development/Transparent-Materials-render-Passthrough-through-them-even/td-p/1060049 My setup is pretty much similar. Description: Semi-transparent unlit objects leak passthrough layer over the other objects in the scene. Most of the built-in transparent shaders (or similar like fade mode) are affected by the bug. Bonus: UI (and Sprite) shaders also have their own problems with passthrough and transparency - they leak the clear flags color instead. Bonus 2: I saw that the standard material with transparent mode is rendered over other objects as intended but invisible over the passthrough... Video link: https://drive.google.com/file/d/1IY28LuH17AACvX-IhW4aKclZlq_M-aix/view?usp=sharing Environment: - Meta Quest Pro - Unity 2021.3.25f1 - Oculus Integration SDK 54.1 (Package Manager - June 15, 2023) Steps to reproduce the bug: (0. You can fast-forward by downloading the scene I have created: https://github.com/ShivekXR/Passthrough-Transparency-Bug) 1. Follow the guide to create the basic scene (setup for Quest Pro): Tutorial - Create Your First VR App on Meta Quest Headset | Oculus Developers 2. Follow the guide to add the passthrough to the basic scene: Get Started with Passthrough | Oculus Developers 3. Add a semi-transparent object over another one using (standard / generic / built-in) unlit material. 4. Build and run the app and see the result (bug). Expected Result: Semi-transparent materials should be rendered over other objects in the scene. The solid objects behind them should block passthrough. Severity: Personally - I think 4 out 5. It doesn't crash the app, but makes passthrough visually unpleasant, confusing, not convincing effect. Any particle effect with opacity look bad by default.6.8KViews4likes9CommentsPassthrough camera data is not available on Quest 3 developing with Unity
Basically it is not possible to access the real time passthrough video from Quest 3 in Unity. Many devs among the internet think it is a crucial feature to be able to process to create incredible mixed reality apps with object recognition using machine learning. Nevertheless, it is not possible to access the real time video captured by quest 3 in unity. Here is a reddit post made by me where people are requesting this feature. Please, we need access to real time passthrough video in Unity or other engines.47KViews109likes109CommentsCan Passthrough be enabled at runtime ?
Hi!.. I'm working on a dual game application, some maps are Mixed and other Virtual Reality.. i need to switch the "Enable Passthrough" flag to true or false depending the map that will be loaded.. this will help me to avoid compiling 2 apks for each type between MR and VR... Is there a way to runtime C++ or BP switching the parameter ? i could not find any related on console commands... Thanks in advance.910Views0likes3CommentsPassthrough over link not working in 5.1.1
Hey all, I've spent the last few days trying to get passthrough over link to work either via VR preview or a normal build to windows, and neither will function properly or at all. I can build the same project to native quest and it works fine, but any type of using passthrough over link is not working*. I've also reached out to multiple people I've found that have mentioned trying passthrough over link on twitter/reddit/multiple discords (unreal slackers included) and not a single person has come back saying they got it to work normally. I have gone through every bit of documentation I can find, checked these forums as well as epics, and no one has an answer. So I'm reaching out hoping SOMEONE can shed some light on these questions: 1. Does passthrough over link function at all currently? If this does not currently work, is there any sort of eta on when it will? 2. Which version/s of unreal should this be functional on? 3. Does it matter if we use airlink vs. wired link? 4. Is there current documentation to can be referenced to set this up? - (https://developer.oculus.com/documentation/unreal/unreal-passthrough-over-link/ <- these do NOT lead to working passthrough as its the same docs everyone else who has failed to get it to work has referenced as well) Related settings: Test scene with the same example with both hole textures to be safe: Quest 2 Native Build: Windows build: VR Preview results in the same as the windows build above (just all black where passthrough should be). I have tried these same settings with Vulkan, DX11, DX12, rebuilt the projects from scratch, tried using steamvr and virtual desktop, tried airlink vs wired link. I have also tried changing the passthrough component stereo layer shapes to every option and tried underlay vs overlay. A couple times I have changed the shape from something to Reconstructed Passthrough Layer and preview again, and passthrough will come up, laggy and covering the full screen, but I can not make this happen programmatically (toggling visibility of said components as per the best practices page says to do). Basically the only way I can get any sort of passthrough while using link is if it shows up upon launch and cannot be toggled on or off at all. Any info/tip/suggestions would be greatly appreciated, and if its something I have missed I apologize. Thanks in advance!5.7KViews2likes8CommentsEnable Passthrough during loading or splash screen. Three dots background remains black.
Hi there. We are developing an MR app for Quest 2 and 3. We can use Passthrough successfully in all our app except during the loading and splash screen, where black background is shown. We aren't using a splash screen, the three loading dots are shown instead. We followed those two guides to have Passthrough enabled in the loading screen, but non of the options seems to work: https://developer.oculus.com/documentation/unity/unity-passthrough-gs/#enable-based-on-system-recommendation https://developer.oculus.com/documentation/unity/unity-customize-passthrough-loading-screens/ *We are using Meta XR All-in-One SDK v 63.0 *Insight Passthrough is enabled in OVR Manager *System Splash Screen Background is set to Passthrough. *We don't have a splash screen in Player Setting nor in OVR. *We also tried to enable passthrough background in the AndroidManifest. Are we missing something?? Also, we loaded a splash screen in the OVR to do some testing, and it was shown with black background. We deleted the image and all the associated changes after the test, but the splash image is still there in subsequent builds. Thank you all!3.2KViews1like7Comments