XR Composition Layers are invisible when the MetaXR feature group is enabled
I am using Unity's XR Composition Layers to render a canvas (like a floating desktop) on a Meta Quest 3. The problem I am facing is that the canvas is invisible as soon as the Meta XR Feature Group is enabled. I am using: Unity 6000.1.2f1 Meta XR Core SDK 77.0.0 XR Composition Layers 2.0.0 OpenXR 1.14.3 URP 17.1.0 Unity OpenXR Meta (for passthrough) 2.1.1 The composition layers work well as long as the ‘Meta XR’ Feature Group is disabled in the XR Plugin Management settings for OpenXR. As soon as it is checked, without changing anything else, the composition layer is invisible on device. All my tests on device were done with an actual build, not via Oculus Link, as a build is where is should eventually work. The same issue was posted here on the Unity Discussions Forum. Unity has confirmed that it is caused by a bug in the Meta SDK package, which appears to be disabling certain layers at runtime, which prevents Unity's code from executing properly on the headsets. Is this already being looked into? When can an update be expected? Thank you in advance!668Views0likes6CommentsHow to overlay data in any VR application? - (like guardian does)
Hi. I would like to overlay an object, for example, a box, at a specific place on the Quest 2 display that can be rendered to overlay within any VR application and not just for passthrough. This would be my first step to eventually be able to render real-time point cloud data from an external 3d lidar sensor through unity so that the lidar can detect obstacles and render them onto the headset so that the user can navigate through obstacles without leaving the application he/she is using. Basically, I'm trying to create my own guardian system and space sense. Any links and assistance would be appreciated as I can't find anything through google or youtube.1.1KViews0likes0CommentsHow to display head-locked UI elements over eye buffer on Quest 2?
I want to display small Unity UI elements to the player that can change dynamically. I at first tried to just use a canvas set to screen space but it didn't render to the screen. I tried to use the OVR Overlay except I can't figure out how to make it lock to the player's head. Are there any solutions to the problem I am trying to solve? (Using Oculus Quest 2)5.2KViews0likes1CommentInteracting with an OVROverlay
Hi all, I'd like to understand the capabilities and limitations of OVROverlay better. We're currently investigating if its possible to render an OVROverlay (with a call, from, say, an Android library within Unity) and then interact with that overlay, much like the system UI does (a compositor layer is opened and catches interactions that are not forwarded anymore to the running app). From the docs, I can only find hints for rendering overlays and underlays, but nothing about interacting with them. Is that possible? If yes, are there any docs on how to achieve this effect?1.3KViews2likes1Commentfeature request for overlay layer:expose native shader of overlay mesh in android plantform
First of all, I truly appreciate Oculus's overlay layer tech for media player developers, which make video looks sharper & less judder. My team has been contributing to develop "view-based media player", the main method uses 24 quadrilateras to combine mesh into what just right cover camera's view. it works well while 24 quads rendered by unity mesh & shader, but we want to introduce this method into overlay, letting overlay renders the 24 quad. I check the newest sdk v1.40, the overlay layer tech could coustom their mesh through vertexs & uv & triangle index by OVROverlayMeshGenerator, but there is no way to custom overlay's mesh shader though sdk v1.40. As for as i know, there should be program id created by gles though glCreateShader, which use for overlay mesh shadering. so, could oculus staff update unity's sdk in future to support changing overlay's mesh shader? Somehitng like i can pass gles style shader into api and got the shader id, so i can modify params by native .so libary and render something very flexibly. [dllImport"mylib"] static extern void ModifyMyShader(int shaderId) // get shader id though api in unity void func() { uint shaderId = createOverlayProgram(string vertexShader, string fragShader);// not unity shader, we use gles native shade here // pass it into native libary which share opengl context, so we can modify it ModifyMyShader(shaderid) } // modify shader though shader id in c++ void func_native(int id) { GL_CHECK(glUseProgram(id)); texY = GL_CHECK(glGetUniformLocation(id, "TextureY")); if (texY != -1) GL_CHECK(glUniform1i(texY, 0)); }1.3KViews1like2CommentsOVR Overlay Equirect - Quest Only?
Hey All, Is the OVR Overlay Equirect shape only available on the Oculus Quest? Asking because it currently doesn't work in editor on our PC and the Rift docs don't mention it, but the quest docs do. If it's not available on PC, is there a reason and will it be in the future? As a follow up, we are attempted to create a background for a loading scene but when we create cubemaps it appears we are very far off the ground, I was hoping to solve this issue using equirect shape, is there any other way to solve this? Currently working in Unity 2019.3, URP 7.2 and latest Oculus plugin (19.1) Thanks, Colton574Views0likes0CommentsCreate an overlay app like the OVRMetric tool
Hi all Is it possible in unity to create an overlay app like the OVRMetric tool? I'm looking at VR accessibility - in particular simulating the different types of colour blindness for the apps we develop. Would be great to have one app to overlay/simulate the loss of some colours in the view to test our previous apps and to inform our UX choices moving forward. Can it be done with the current oculus SDK? Any tips on a starting direction appreciated! Thanks561Views0likes0Comments360 Content on the Overlay Layer
Note to all developers looking to use the overlay layer to render 360 content. There are issues within the Oculus overlay implementation which makes 360 content not a viable option. The overlay layer is rendering straight to the eyebuffer(screen) and needs special care to do so. The edges of an overlay layer tend to have a thin dark outline which is usually not an issue with a quad or cylinder as they can be easily masked by darker backgrounds. Now to render 360 content with the overlay layer, you need to use a equirect layer. The equirect overaly shapes render 360 video/images clear and sharp however there is a massive issue making the equirect option unusable. The edges of the overlay layer still produce a small black line which happens to be on the back side of the sphere. Looking forward is just fine however once you turn around, the black line is always at the back of the video. The line is very thin but extremely noticeable. A strange aspect of the black line is that it is extremely tiny at the poles of the sphere but it is its thickest at the equator, though it is still very thin. I've reproduced this with 4k mono video and stereo video and 360 images. It happens with AVPro, Unity's video player and still image textures. I've primarily tested this with the latest oculus utilities 12/1.44 and Unity 2018.4.9 and 2019.2.3. In my research I also reproduced it on older version of oculus utilities which produced similar results with early versions producing an even thicker line. I am not the only developer who has come across this issue. I would post links to these discussions however, I "have to be around for a little while longer before you can post links". They can be found by searching "overlay" in the forum. In addition, John Carmack replied to a twitter thread about this on July 10th, of 2018, however his responses did address the real issue. In addition to these posts, I have privately spoken to other developers who have had the same exact issue and ended up having to ditch the overlay layer all together to properly render 360 content. I was met with the same fate as my counterparts. I have concluded that it is not possible to properly render 360 content on the oculus overlay layer. Other interesting tidbits i've found about the equirect overlay layers: Oculus offers an example scene with the equirect overlay layer but it is only a 180 video. The entire back half of the sphere is black so the black line not visible. I inserted my own 360 content into this demo scene and switched its custom video player script to 360 from 180 and of course, the black line was there. Oculus does not actually give a demo of the 360 content rendering on the overlay layer. I have personally never seen a single instance of any 360 content rendering on the overlay layer without the black line(within unity). In addition oculus does not actually provide an example of 360 content rendering on the overlay layer, though they have a demo for the much less utilized 180 video. I believe oculus did not deliver any demo scenes with 360 content because they know it doesn't work. The part that I've found troubling is that within the Oculus Go/Quest Overlay documentation it states, "Equirect layers are single textures that are wrapped into a sphere and projected to surround the user’s view. Most commonly used for 360/180 video playback". I was sure that this meant that it was proven and tested to work for 360 content. If it wasn't obvious by the length and detail of this post, i've wasted many hours trying to get this working because of the documentation stated that it works. I hope that any future developers happen to find this post before they go down the same path as I did. If this is correct, I also hope that oculus removes the part about 360 videos from their overlay documentation as it simply is not correct. If someone can prove me wrong, please do.1.7KViews1like3Commentssome question for Blend Render Compositor layer( OvrOverlay ) with Opaque & Transparent model
First of all, Compositor layer contain two type, called them Overlay and Underlay. i have readed the post https://forums.oculusvr.com/developer/discussion/comment/536880#Comment_536880 which talk about how the 3d model correctly show or hide while using Compositor layer. i want ask a extra qustion to confirm my assumption for using Compositor layer right. Is Oculus Gear vr home app using "Underlay" to Render Ui Panel ? oculus staff said "we do use overlay in Gear VR home, and the fact is that everything is made by overlay in gear VR home", while gear controller & its white laser can display in front of ui panel shown below. if gear home using "Overlay" not "Underlay" to render ui panel into cylinder, i do not figure out a valid method to render controller & its laser in front of ui panel, because of "Overlay" blend with eye buffer using Overlay Rt's alpha value. while "Underlay" blend using eye buffer's alpha value. using Overlay Rt's alpha value for blend and "Overlay" render in front of all things, make the "Overlay" layer can not leak a hole to show the controller. consider what i assume is right, there must be "Underlay". so gear vr home need "poke a hole" for eye buffer while shader the hole's alpha = 0, which ui panel can blend into eye buffer correctly. Finally, the render action list for using Compositor layer combine with controller & room shown below: 1. render cinema and some opaque things except gear controller 2. render some transparent things except gear controller laser 3. in simple, clear total eye buffer alpha into 0 4. render controller & laser, write them alpha to corresponding location 4. Underlay ui panel blend with eye buffer, leave eye buffer alpha = 1 not blend so, Is it right render order for gear vr home ? but the method above can not handle the situation while gear controller behind the UI panel render using "Underlay" because their alpha already = 1. Or there contian other method to use"Overlay" render ui and make contrller render right? thanks for your time3.4KViews0likes7Comments