Horrible color banding for lighting & fog


Hi there!

Why am I getting these horrible color banding artifacts with HDRP?

I’m using the latest HDRP version from the Package Manager.

I have literally messed with every single parameter available on my HDRP asset to try and remove these artifacts but no success so far.

How can I fix this?

I’m also experiencing heavy color banding, especially in low light. This wasn’t happening for me in standard pipeline.

Hey, a few things to try:

  • On the camera, enable dithering.
  • In the HDRP asset, enable FP16 for Color Buffer Format, and also enable higher precision buffers for the color grading, that’s Grading LUT Format and Grading LUT Size. This will have a memory cost.

Also, lower-quality monitors can amplify banding. If you see strong banding in this test (Gradient (banding) - Lagom LCD test), then one of the root causes is your monitor/its calibration. Run colorcpl.exe, and check that you don’t have some odd color profiles loaded.

With a higher-end, well-calibrated monitor, you should get near-zero banding on the image gradient below.

If after all these steps, you still encounter banding and you are certain the issue doesn’t come from the monitor, please file a bug, with a repro scene.

As you can see here, it is possible to get zero banding in HDRP with volumetric fog with the settings above (#1 and #2): Volumetrics from light cookies: Multiplier caps out at 16? - Unity Engine - Unity Discussions

5 Likes

The Color Buffer format did it for me. Thank you for your help, Pierred!

These both worked for me. In my case, dithering was enough to smooth the banding. Thanks!

2 Likes

@pierred_unity
I have the same issue but in the URP (Unity 2021.2) but can’t find the “enable FP16 for Color Buffer Format” setting, is it possible in URP?

3 Likes

@pierred_unity @SniperED007
I’m having the same issue in URP. Not finding an option for FP16. Could you please help out?

2 Likes

@pierred_unity
@pierred_unity
I’m also having this banding issue with URP. Do you have any suggestion for us URP users?
Thanks for your help

8400492--1109118--upload_2022-8-29_18-5-5.png
8400492--1109121--upload_2022-8-29_18-5-20.png

1 Like

@KarlKarl2000 it’s worth logging this as a bug or re-positing this in the URP forums.

2 Likes

I’m having this issue from enabling FSR 1.0

1 Like

I am sorry to necro-post. but this bug has nothing to do with LUT or postprocessing.

The banding is simply dictated by the format of the Camera Texture … i fixed the banding by changing it from UNFRM to SGRB

( 8 bit precision is fine in my case, i am targeting hardware that can’t tell the difference)

hope this helps

URP enjoyer here. I fixed both my color texture banding and post-processing - related color banding by following these steps:

sources:
https://docs.unity3d.com/Packages/com.unity.render-pipelines.universal@15.0/manual/post-processing/hdr-output.html

3 Likes

Yup, this was added in Unity 2022.

1 Like

I’m using URP, but these did not make a substantial difference for me - and the HDR grading mode did not work (a warning showed up next to it when I checked that option, likely because my monitor does not support HDR rendering).

The previously mentioned “enable dithering” setting in the camera inspector is what fixed it for me.

@theghostronaut
@KarlKarl2000
@SniperED007
I fixed my banding issue with URP by changing the HDR COLOR BUFFER PRECISION to 64Bits (instead of 32Bits)
To find this setting you need to be in ‘Debug’ mode in the inspector.
To enter Debug mode, click the 3 dots at the top left of the inspector pane (next to the padlock) and click ‘Debug’.
Next, open your URP Asset, and in my version (2022.3.8f1) the HDR Color Buffer Precision is the 16th item in the inspector. Simply change this drop-down value to 64Bits.

I really think that such an important setting should be Serialized.
I hope this helps somebody :slight_smile:

9393638--1314407--debug-mode-inspector.png

9393638--1314410--hdr-color-buffer-precision.png

4 Likes

Thanks a lot! This solves the problem.

I wonder why Unity not public this setting. How do other people solve this issue? Every URP project will meet the color banding problem. Is it just because not obvious enough so nobody cares?

Not sure but maybe this is a bad idea due to extra memory allocation? Did you check in memory profiler to see how much memory this buffer is eating at high res like running 4K?

Seems that the HDR precision property is already exposed in URP 14.

“In the HDRP asset, enable FP16 for Color Buffer Format, and also enable higher precision buffers for the color grading, that’s Grading LUT Format and Grading LUT Size. This will have a memory cost.”

Where is this option in HDRP? Cannot find it.
Only:

R16G16B16A16 and
R11G11B10

R16G16B16A16 = FP16, for example, R16G16B16A16_SFloat (64-bit) uses a 16-bit float for every (R + G + B + A) channel. (more info here)

1 Like