[Oculus Go] OVROverlay with cubemap - HOWTO ?
I'm new to Unity and Oculus development and can't get OVROverlay to work, at all. I'm developping for Oculus Go, everything is set up correctly, I guess (even if the documentation is really lacking IMHO), I can build and send my app to the Go and see whatever I put there (a cube, for instance !). My goal for now is simple : render a high quality stereoscopic cubemap using overlay, as this seems to be the best option quality-wise. Of course, I've carefuly read the official documentation : https://developer.oculus.com/documentation/unity/latest/concepts/unity-ovroverlay/ and tried to research all I could, but can't get it to display anything. BTW, why the doc is mentionning the OVRRTOverlayConnector script, which is nowhere to be found ? I'm using latest everything (Unity 2018.1.0f2 and Oculus Utilities 1.25.2). For now in my scene there is an OVRCameraRig, a gameobject (empty) with OVROverlay script as a component (I've also tried adding OVR Manager as seen in the screenshot in official docs, and Mesh filter quad, but I don't understand what it does) and a simple cube. I've also tried to clear the skybox, with no effect apart from removing the sky... As you can see, I'm really lost, and even with a solid experience with internet research, there is quite nothing clear about all of this :) Could somebody point me in the right direction for using OVROverlay to display a cubemap ? Thank you very much !5.5KViews1like12CommentsOVROverlay don't work with Oculus Quest
Hi guys, Like the title mention, I can't find no way to make OVROverlay to work in any scene on the quest. Everything is working perfectly in editor through link. I'm using Unity v2019.3.9f1, Oculus Utilities v1.52.0, OVRPlugin v1.52.0, SDK v1.52.0, Oculus XR Plugin 1.4.3 and Unity Integration 20.0. At first I tried building OVROverlay sample scene (with and without "Protected Context" from XR settings) without success. While this is working in editor and don't show any error in build, I'm currently out of solutions. Can you think of anything else ? **documentation/unity/unity-ovroverlay/** This could come from this option that is no longer available : "For Oculus Quest: To enable support on Oculus Quest you must also render the OVROverlay layer as an External Surface and select Protected Content in Player Settings > Virtual Reality > Oculus." OVROverlay layer as an External Surface ? What is this ?3.6KViews0likes5CommentsOVROverlay + laser beam pointer issue
Hi, I'm developing a simple app for OculusGO with Unity3d (2018.2) where the user can choose a 360 video from a library and play it. I used the CurvedUI plugin and TextMeshPro for the text to reproduce the library feeling of OculusGO but after a lot of work I wasn't able to achieve the desired result because the texts and images resulted al jittery. I'm trying now with the OVROverlay and I can get a really nice result but I can't get the laser beam to work correctly. In the semple project of the SDK the laser beam interacts only with a Canvas that is rendered without overlay. What do I have to do in order to make the laser beam work with the OVROverlay? For the record, I'm using the UIHelpers prefab laser beam. Cody3.4KViews0likes4CommentsRemoving the "outline" from the edges of geometry rendered by OVROverlay
Hi all, this is something I pinged Carmack on Twitter about directly a few days ago. Linked to the thread for context; there's more illustrative screenshots that I've attached there as well. Trailed off after a few exchanges (can't believe he indulged me as long as he did!), so feedback with other Oculus staff via either @imperativity or @vrdaveb would be really valuable as well. I'm trying to figure out if it's possible to remove the thin "pixel border" that appears around all continuous sections of coplanar UI that are rendered by OVROverlay. It doesn't matter if they are rendered via the "single Overlay instance w/a Camera and a Render Texture"-based approach, or just individual textured Quads with OVROverlay Components on them. Just took a screenshot that I think demonstrates what I'm referring to pretty clearly: Our whole UI was built using Canvas, so the Render Texture approach was mandatory since the UI had already achieved a complexity that was unscalable for a maximum 15 individual OVROverlay instances. As per many other discussions I've lurked like this one and this one, my skybox is an Equirectangular Underlay, my reticle is a World Space Quad Overlay, and the Render Texture/Camera for the whole UI is also an Underlay so that I could draw the motion controller and the ray over it. Basically, as much as I could copy from Oculus Home as possible. Here, you see the left side of a panel that has another Plane with a Texture on it hanging off to the side. I went into GIMP and very sloppily erased the edges of the Texture that's on the Plane by hand with a mouse. This enhances the demonstration that this "outline" is drawn around the border of whatever is continuously rendered as one blob within the Overlay render. If I hadn't crappily erased the edges of the Poster, you'd just see a straight black line going down the leftmost edge. It seems that is drawn wherever there's a punch-transition back to the eye buffer, or something. The white background of the skybox especially emphasizes this. Many times it really enhances Screen Door Effect and makes the edges of all of the UI elements shimmer quite unpleasantly. I've been following the gospel of @vrdaveb 's every last shred of words about how Oculus is interally putting together the UIs for the OS-level stuff like Oculus Home, because the VR Compositor Layers documentation is frankly so lackluster and uninformative. If Oculus Home is put together with Overlays in order not to double resample every developer's beautiful thumbnails for their apps, then how is this outline being avoided? In some respects, it looks like it's simply hidden by encapsulating thumbnails within dark-colored margins, such as the main tiles of the Home area. But what about the Recents tab? What about the Library and the Store, and all the other places where there are high res thumbnails without borders? How are you achieving those radial gradient fades that contain all of the headers? How are you achieving transparent panels? How are you achieving depth effects? Animations shifting the Z-depth of the Transforms of Canvas objects being captured by the Camera/Render Texture isn't showing up at all, only 2D movements. How are you doing tilted planes? Is the main nav bar in front of you not an Overlay? The text and icons look a little more rasterized than the rest of the UI. Sorry, too many questions in one spot. The thing I really wanna know more than anything else is the main thing I'm asking about in this thread, with the outlining effect.2.8KViews0likes6CommentsOVROverlay not rendering in correct order with depth buffer
Hi everyone, I'm trying to take advantage of the improved image clarity that OVROverlay provides compared to standard Unity UI to render interfaces. I have a scene with multiple tablets that the user can grab and interact with, and since these can be moved arbitrarily using grab manipulation mechanics, I need to make sure that they a) intersect correctly with the scenario and b) intersect correctly with each other or at least can have their sorting order changed at runtime depending on which one is in front. I already managed to make it work by using OVROverlayCanvas and having OVROverlays in underlay mode. But I cannot get the rendering to meet all conditions: If I set overlay.noDepthBufferTesting to false, I get correct intersections between the two tablets but they will always render on top of the scenario. There is no depth interaction between the overlays and the 3D. If I set overlay.noDepthBufferTesting to true, which the OVROverlayCanvas component does by default, I get nice intersection between the tablets and the scenario, even correct transparencies. The problem is that the tablets don't render correctly when they overlap because one gets rendered always before the other. Using compositionDepth doesn't fix anything because for some reason, the internal call OVRPlugin.EnqueueSetupLayer() only seems to work the first time the depth is assigned, but not on subsequent calls. I added code that calls OVRPlugin.EnqueueSetupLayer() to be able to change the depth but the render order remains the same. Ultimately this call goes to OVRP_1_28_0.ovrp_EnqueueSetupLayer2(), which returns Result.Success. Is this a bug? As a last resort I tried to destroy and re-create the layer with the new depth value and this seems to work, but it's not something I want to add to production code :) So basically my question is if there is a way to make overlays intersect with the scenario and at the same time intersect correclty with each other. Kind regards, Enrique, VRMADA.2.6KViews0likes1CommentOVROverlay (Underlay) equirect sphere shows a black seam
Hi, I am trying to show a background image using OVROverlay (underlay). The quality is great, except that I can see a black seam where the image edges meet. The seam is only about 1 pixel wide but it is clearly visible. I have tested using overlay instead of underlay and I get the same result. When I show it as a non OVROverlay background, it works without a seam. Has anyone been able to show a Overlay/Underlay equirect background without a seam?2.5KViews0likes7CommentsXR Rig camera with OVRManager
I'm a bit confused about the compatibility of the XR Plugin and Oculus Integration download from the Asset Store. I need to use the OVROverlay script found in the Oculus Integration Package. This requires the OVRManager to be running - which is normally attached and initialized with the OVRCameraRig. Is it possible to use the OVROverlay without using the OVRCameraRig, using instead the XR Plugin's camera rig?2.4KViews1like2CommentsOVROverlay Underlay issue
@imperativity et al: I have an Oculus Go/Samsung GearVR Application developed using Unity. Since I am relatively new to Oculus Overlay renderings and the documentations ( for beginners ) are far from ideal, I need the forum's help. Scenario: I am trying to play a video. The texture is obtained from Native Android Exoplayer, Blit for Left/Right Eye and populated through OverrideOverlayTextureInfo. Also, I have a static cubemap which I would like to render it behind the video. For design purpose, Underlay was chosen to be the Overlay shape. I would like the the cylindrical video to be underlayed in front of the cubemap. Expected Scenario : A scene which has the static cubemap and the video playing. Actual Scenario : An empty scene with just the audio playing. Currently, I am in 1.28. Backtraced and it seems to be working in 1.14. Settings: 1) Skybox Settings => Solid Color Background : (255,255,255,0). 2) Projection : Perspective. 4) Composition depth: 1 for cylindrical video. 2 for cubemap ( As per the documentation - /// The compositionDepth defines the order of the OVROverlays in composition. The overlay/underlay with smaller compositionDepth would be composited in the front of the overlay/underlay with larger compositionDepth.) 5) Unity :2018.2.0f2 ( same behavior in Unity 2017.2 ) 6 OVR : 1.28 Possible Trials from my side: 1) Changed the Skybox settings from Alpha = 0 through 1. Still an empty scene. 2) Debugged the information going into OverrideOverlayTextureInfo from my app. The information seems to be the same on both OVR 1.14 and OVR 1.28. And yet 1.28 renders an empty scene and last known version to work for me was 1.14. 3) Changed from OVRPlugin.LayerFlags.TextureOriginAtBottomLeft to OVRPlugin.LayerFlags.NoAllocation. Still an empty scene. What/where possibly is my setup or process incorrect? Please help. Thanks and Cheers, VK1.8KViews1like2CommentsCan I use OVROverlay to get better 360 video performance?
Hello, I am developing an Oculus GO app in Unity that shows a 360 video player. So far I have been using a VideoPlayer that renders to a RenderTexture and a sphere with the Skybox/Panoramic shader that uses the same RenderTexture. It works great for most videos. But some videos with a lot of motion "flickers". I have a video of a skier going down a hill and every time he passes objects close to the camera the object appears twice. I took a photo of one of the lenses in the GO: As you can see you can clearly see two sticks where it should only be one. And when you actually look into the glasses the effect is even more obvious. I have tested with a 4096x2048 video. But it doesn't seem to matter if I use higher or lower resolution of the videos. I think it is more a limit in the way I render the video to the sphere. Now to the question: So I started reading about the OVROverlay today and when I read the documentation it sounded like this could be used to render videos to a sphere with better performance. I tried to setup a scene with an OVROverlay and a video player but I couldn't get it to work in the Oculus GO. I used the SampleFramework 180 degrees video player as a source. But I couldn't get that sample code to run on my GO at all. Has anyone used an OVROverlay to render 360 videos?1.7KViews0likes3CommentsOVROverlay rendered correctly from HMD in editor - but from origin in builds
Does anyone know why sometimes, the compositor does no head-tracking or is stuck in front of your face (i.e. all layers from the compositor are rendered to the HMD from origin aka position / rotation zero, instead of from the HMD position)? So far, this seems very random to me: It always works correctly in the editor (i.e. OVROverlay instances are in world-space, and rendered from the actual HMD pose), but earlier, I made a build, and the build had the compositor stuck. Then, I did some work on the project, eventually did another build: Now it also worked correctly in the build. And currently, again, in the builds, the headset renders from origin. This only occurs in the compositor, otherwise, the game renders just fine. Also, I never saw this in the Unity Editor - only in builds (this is obviously on Oculus Rift, via Oculus SDK). I have now done quite a bit of experimentation trying to make this work correctly in builds again - but no matter what I do, the compositor is "stuck on the HMD" (i.e. all the OVRLayer instances are rendered with the camera at origin, instead of being rendered from the actual HMD position). Version information: Unity v2017.4.12f1, Oculus Utilities v1.32.0, OVRPlugin v1.32.0, SDK v1.33.0. I originally reported this here, but that thread became a little big.1.5KViews0likes2Comments