Problems with Banding and AO (URP - Oculus Quest game)

Hello!

I’m designing a VR experience together with a couple of friends for the Oculus Quest using the URP in Unity. I’ve created some models in Blender and imported the .blend files into my Unity scene (they are UV-mapped and I have also generated Lightmap UVs for them in Unity). Unity version is: 2019.4.9f1.

1. There’s quite pronounced banding in play mode (see image). Is this actually how it is supposed to be or am I missing something here? It’s when I click “play” that the banding suddenly appears and it´s not static as it “moves around” when I move the camera. I don’t see it in the scene view at all.
2. Also, ambient occlusion is not working for me. I enable it, but it doesn’t show up after baking the light. Any idea why? Is this somehow connected to the banding problem?

Images attached of the banding issue, Lighting and light settings.

I’ve tried:

  • add dithering to the camera
  • changing to “UniversalRP-HighQuality”
  • tampering with the UV maps of the models and generate “Lightmap UVs”
  • change compression settings for the lightmap (this doesn’t change to high from normal)
  • change shadow type on the Directional Light
    Lighting settings:
    – change lighting mode to “Subtractive”
    – turning up Samples (Direct, Indirect, Environment)
    – changing the “Lightmap Resolution” (to 60 texels/unit)
    – changing “Lightmap Size”
    – turn off “Compress Lightmaps”
    – changing “Lightmap Parameters”

Nothing has helped.
I appreciate any help I can get as this is starting to drive me crazy.

Thanks!



6290327--695693--unity_dirLight.png

Hello again,

I realized I wasn’t clear about that this is happening on my computer. On the Quest it looks fine, some banding but I think that’s to expect. I didn’t have a chance to actually play it on the Quest until after I posted this. I guess this is a hardware related problem.

I’m still wondering about the AO though, but from what I can gather, this doesn’t seem to be an option when working with the URP.

So I just wanted to update. Apparently the material shaders used were set to URP/lit and not URP/Baked lit.
When we changed that, it fixed the problem with AO.

The banding happening on my computer in game view is still a mystery though. I suspect it has something to do with my graphics card not being able to handle Unity properly (it’s super old).

Thanks! Will check that.

So this used to work for me at 2019 and old Unity VR setting, but does not work in 2021 with XRPackage, can anyone confirm its still valid?

EDIT:
Using OVRPlugin 41.0

OVRPlugin.SetDesiredEyeTextureFormat(OVRPlugin.EyeTextureFormat.R16G16B16A16_FP);
Debug.Log("Current format set: " + OVRPlugin.GetDesiredEyeTextureFormat());

Always returns: Current format set: R8G8B8A8_sRGB, although SetDesiredEyeTextureFormat is returning true.

So with OVRPluggin 43.0 the previous code returns correct format (the one I’ve set), but it makes no difference in VR… Using Oculus Rift and OpenXR plugin (to support other headsets).

As strange as this might sound, sometimes running out of gpu memory at runtime, or the gpu is being used to process lots of things, going on in the game visually, can cause colour banding. I learned that from a dev guy, who dabbled and apparently helped develop, a handful of games for the snes, when it was a popular console in the early 90’s.

Finaly an bug issue has been passet to developpers

1 Like