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
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.
Samsung Galaxy S8 (Snapdragon 835), Gear VR (2017), Oculus Go (64GB), Unity 2018.3.14f1