Skip to main content
Participant
January 5, 2019

Banding in low-light scenes

Hi,

I'm experimenting with some low-light situations and I'm getting terrible banding:


There is this article for improving banding issues, but I'm failing to implement the solution:


I wrote a script and tried both lines in the start function:

OVRManager.eyeTextureFormat = OVRManager.EyeTextureFormat.R16G16B16A16_FP;
OVRManager.eyeTextureFormat = OVRManager.EyeTextureFormat.R11G11B10_FP;

My project is also in linear space, but unfortunately the script doesn't affect the banding.

Am I doing this right or have I missed something?








    This topic has been closed for replies.

    10 replies

    Up and Coming
    January 5, 2019
    I hade the same issue, I fixed my banding problems by implementing dithering in my shaders based on this tech note: https://developer.oculus.com/blog/tech-note-shader-snippets-for-efficient-2d-dithering/
    Working on LineWars VR: http://linewars.patrickaalto.com/LWVR.html
    tbkunoAuthor
    Participant
    January 8, 2019

    PAalto said:

    I hade the same issue, I fixed my banding problems by implementing dithering in my shaders based on this tech note: https://developer.oculus.com/blog/tech-note-shader-snippets-for-efficient-2d-dithering/


    Hi, thanks for your reply!

    Does the method described in the link that I posted (https://developer.oculus.com/blog/tech-note-removing-dark-scene-color-banding-in-unity-/) does not work at all?

    I'm not very experienced with shaders, it could take a while for me to implement the dithering to the shaders, that's why I would like to know if I'm doing something wrong or it just doesn't work.

    Up and Coming
    January 9, 2019
    I am not familiar with that method, and I am developing for mobile, which does not support that method, sorry.
    Working on LineWars VR: http://linewars.patrickaalto.com/LWVR.html
    tbkunoAuthor
    Participant
    January 9, 2019

    PAalto said:

    I am not familiar with that method, and I am developing for mobile, which does not support that method, sorry.


    Thanks, hopefully somebody can explain why it doesn't work.
    tbkunoAuthor
    Participant
    January 14, 2019
    I could solve this issue by using Unity's Post-Processing Pack v.1 (directly from the unity asset store) by applying "Dithering" and "Antialising". The question remains though, why the article's suggested solution didn't work.
    Up and Coming
    January 19, 2019
    @tbkuno not supported texture format
    BOOL VR Games
    Participant
    January 19, 2019
    is there no way to call glEnable(GL_DITHER) on the OpenGL ES context, to get dithering done for you? (I know it's frequently disabled as it has a cost, but I imagine it's as fast as or fast than options discussed here like writing your own dither code)
    Up and Coming
    January 20, 2019
    @nat42 lol no
    BOOL VR Games
    Participant
    January 20, 2019
    Seems like at a minimum you could put it in native/java code and call it from the the main Unity thread, providing you aren't using multithreaded rendering (some genius might be able to make it work with multithreaded rendering as well... but without seems easier and like if you Google peple have had some sucess in the past with hacky hacks)
    New Participant
    September 12, 2022

    So to necro this thread this: https://developer.oculus.com/blog/tech-note-removing-dark-scene-color-banding-in-unity-/ 

    used to work for me till 2019, but since we moved to 2021, it stopped 😕 I've tried to update OVRPluggin to version 43.0, but while the format is updating, there is no visible change happening. There is unity forum thread here, but no responses.