UI Canvas only visible in one eye w/ HDRP + Single Pass Instancing

I’m using HDRP, Single Pass Instancing w/ Oculus’ XR Management plugin and an Oculus Quest w/ Link cable.

My UI (world space render mode) only draws in one eye when single pass instancing is enabled. Draws in both eyes with Multi Pass.

Any easy fix for this?

< same issue :confused:

Hate to be the “me too guy”, but me too.

Got some results using the solution described here:

But it seems to be limited for more complex UI.

For now i’m turning off instancing.

Unity fix pls?

1 Like

hi,
i’ve came across this also in the URP. i found these forum posts and they suggested to put the canvas element in the “center eye” in tracking space of oculus’s camera rig prefab. see this: (LWRP) UI not displayed on Oculus Quest

6843920--796664--upload_2021-2-16_17-34-36.png

hope this helps,
const

I had the same issue, turned out one of these UI elements was using a custom shader. The custom shaders need to be modified as described here in order to support single pass instanced:

Once the modification was done, the problem disappeared.

2 Likes

While custom shaders do certainly need updating, I’ve now started encountering this issue despite not having a custom shader on any of the offending UI elements.

It also looks as though the world space canvases camera reference gets cleared when pressing play. (2022.1.15f1 and URP 13.1.8)

Edit: I’ve just as a test overwritten the ‘Default/UI’ shader with the ‘Universal Render Pipeline/2D/Sprite-Unlit’ shader and it fixes the issue. Looks like the UI & TMPro shaders didn’t fully update despite re-importing them.

I just had this issue with a clean install of Unity 2022.1.20f1 using the 3D URP pipeline, OpenXR and using a Valve Index. All the GUI elements would show in the left eye, floating around and displaying fisheye.

The previous version of my project was in 2022.1.8f1 and did not experience this issue with the same setup.

These are the steps that worked in my instance.

  1. First make sure Edit->Project Settings->Graphics->Scriptable Render Pipeline Settings is set to something other than none, I used URP-Balanced

  2. Close the project, exit Unity.

  3. Go to the projects directory and delete all the sub directories/files under these directories. They will be rebuilt when you restart.

[ProjectName]/Library/PackageCache
[ProjectName]/Library/ScriptAssemblies
[ProjectName]/Library/ShaderCache

  1. Now load in your project, let it rebuild and see if it fixes it.

Hope it helps anyone else who experienced this.

17 Likes

This works with Unity 2021.3.20, URP, and Oculus Integration Package. I have multiple cameras for URP (from https://docs.unity3d.com/Packages/com.unity.render-pipelines.universal@7.2/manual/cameras-multiple.html) and one of the cameras only renders to the left eye. This solution works great! Thanks!!!

This fix also worked for me (2022.1.23f1). What a life saver, thanks @VRStudy !

Thanks a lot mate <3, it worked for me (2022.1.22f1)

Edit > Project Settings > XP Plugin Management > Open XR > Render Mode = Multi Pass.

Apparently, world space canvas will not work properly in Single Pass Instanced rendering mode for VR.

1 Like

I encountered a similar problem, and it turned out that one of the UI elements was utilizing a customized shader.https://www.skysmotor.co.uk/

World space canvas does work fine in HDRP / Single Pass Instanced.

Works 2021.3.29f1 :smile: :smile:

Worked on 2021.3.6f1!

This fixed it for me in 2022.3.25f1. Thank you. It seems like it’s deleting those directories in Library/ that fixes it.

This did not work for me, but clearing it in-editor did. If someone is in the same situation (I had this issue with URP):

  1. Go to Project Settings > Graphics
  2. Optionally assign a new RP on the top or skip this step
  3. Press Clearbutton next to Currently Tracked section.

Worked like a charm :+1:

Works with 2022.3.34f1 !