[Quest, Addressables] Rendering issue with Addressable assets

Hi,

We have a problem that is a bit hard to explain, but hopefully I can illustrate it properly with text and video. We have a program running that allows users to join a network session on PC and Quest. The basic program runs perfectly fine, with user avatars and a tablet menu.

Then, you can load in addressables assets, and this is where the issue occurs. Anything loaded in is rendered incorrectly on the right eye. It’s not an artefact I’ve seen before, it’s like the right eye camera has an offset from the pivot and is rendering in the wrong place, plus being totally weird when you move your head.

In the video attached (Google Drive link here)(Imgur link here) you can see the issue, especially at the end when I’m looking at the other avatar. Do note that even when this occurs, the assets that are not addressables seem to be acting normally. In the scene shown, the lego brick and the environment is loaded addressables, whereas the avatar and the tablet are built into the apk.

We’re using URP and the loaded assets are using that standard lit shader.
Unity version: 2021.3.16f1
Addressable version: 1.21.1
URP version: 12.1.8

Any further info needed, I will happily provide.
Ole // Fynd

Edit: Actually looking at the video again it looks as if the FOV on the right eye is wrong… My next thing to try is to build this with the Oculus plugin instead of OpenXR

Edit: Tried a couple of things - updated to latest 2021 LTS, and updated addresssables project to use the same addressables version (it is a different project and was on addressables 1.19.5). I’ve also made sure that the addressables project has XR enabled and multiview selected, like the main project. I’d like to add that the program runs without issue on PCVR.

1 Like

Have you been able to test this with the Oculus plugin? Does it occur with the Oculus plugin? If it works with Oculus and not OpenXR then please file a bug!

Hi @Deltigre , thanks for checking up on me. So with Oculus it doesn’t have the same problem, and it’s definitely better than in OpenXR. However it’s still broken to the extent that it’s not usable. Each eye renders more correctly, and there’s not such a difference between left and right. When you look through one eye at the time, things looks correct. However when you open both eyes, the field of view is wrong, and everything seems much bigger than it is supposed to be. Due to the stereoscopic nature of the issue I can’t attach a video this time.

I’m working on setting up an apk file with the same environment to test on, to see if i can recreate the issue in a clean project. When I do, I’ll share it.

Alright, an illustration here. The tablet is built with the app, and renders normally. The environment and the lego is loaded addressables. You can see how the perspective shift on the tablet looks right compared to the background, but on the addressable assets it seems like the same image is rendered on both the right and left eye

When switching back to OpenXR now with the exact same settings, it looks the same way, so no difference between the two

In the same boat here, have you found a solution @FyndNorway ?

When trying to load in addressables, they don’t appear in my right eye. Only thing that solves it is forcing each renderer’s material to Standard.

It sounds like maybe the stereo shader variants aren’t getting included. Can you file a bug and post the issue # or dm me it?

Having the same issue as @OmnifariousStudios , I download and instantiate the Addressable but it only renders on the left eye. Creating a new material from the shader (using a custom shader that is tested and works with VR) and applying the new material to the meshes seems to be a workaround, but it’s way too costly.

2 Likes

A year later, I’ve got the same problem

@OmnifariousStudios
@KostasAfentakis
@Bananozuar1
After some testing on updates to Unity 6, I made another attempt at solving this.

We used OpenXR Multi-pass as render as a workaround, but I managed to get “Single Pass Instanced” work on android from our Addressable Project.

Steps that seems to work (Currently using Unity 6.0.27f, not tested in prev versions)

  • In both main project, and addressable project, use OpenXR for XR Plug-in Management.
  • In both projects, Set OpenXR Render Mode to Singel Pass Instanced (On both standalone and android)
  • In addressable project, go to Project Settings → Graphics and set Instancing Variants to “Keep All”

That fixed it for us.