Author Topic: Corona Sky Color Banding issue  (Read 1099 times)

2025-09-23, 11:59:20

JuL

  • Users
  • *
  • Posts: 4
    • View Profile
Hi there,

Is the Corona dev team still investigating about the color banding issue on corona sky map ?
If so, can you share some informations because for now on that feature as become nearly useless (unless a lot of time-consuming post production...).

Thanks for you feedback

(image produced in 3ds max 2025.3 / Corona 13)


2025-09-23, 12:19:05
Reply #1

pokoy

  • Active Users
  • **
  • Posts: 2008
    • View Profile
Are you saving to a file that only supports 8 bits? In that case it's expected, as there are too few numeric values to represent a smooth transition in 8 bits. The only thing that'll help in that case is adding some noise. You should see no banding if you save to a format that supports 16 bits or more, e.g. 16 bits TIF or EXR.

2025-09-23, 12:40:33
Reply #2

JuL

  • Users
  • *
  • Posts: 4
    • View Profile
Hi and thanks for your reply,
Unfortunately these bandings appears also on 32 bits .exr saved files, the attached jpg was just a lighter way to show the issue.

2025-09-23, 12:46:48
Reply #3

pokoy

  • Active Users
  • **
  • Posts: 2008
    • View Profile
I don't think it can be avoided since you're probably going to deliver it in 8 bits anyway. Try adding noise/grain to the image or background, it should help.

2025-09-23, 14:43:47
Reply #4

zeropluszero

  • Users
  • *
  • Posts: 2
    • View Profile
Hello, i am facing the exact same issue, and that is very, very, annoying :)
To add some precisions, saving the file in 16/32 bit EXR and then convert it from a software to a 8 bit jpg works, you dont have those "bandings".
But for an unknown reason, while the VFB is in 32bit, saving it directly to the jpg create them ....
Would any dev be able to have a look, hoping the VFB could behave just like a "photoshop's like" program and cleanly convert to 8bit ?
Or maybe we dont understand well the issue there ?
In any case, that is really an issue making procedurals, and especially corona skies, useless.

Thanks in advance !

edit : here's an example, on the left, the image is saved straight to 8bit from the VFB, on the right converted 16bit to 8bit ... so no "8bit" issue there ...
« Last Edit: 2025-09-23, 15:00:47 by zeropluszero »

2025-09-23, 20:41:38
Reply #5

romullus

  • Global Moderator
  • Active Users
  • ****
  • Posts: 9342
  • Let's move this topic, shall we?
    • View Profile
    • My Models
Would any dev be able to have a look, hoping the VFB could behave just like a "photoshop's like" program and cleanly convert to 8bit ?
Or maybe we dont understand well the issue there ?

Actually Photoshop is doing opposite of "clean" convert, the reason you don't see the banding after converting the image from 16 bit to 8 bit is because Photoshop is adding some noise (it's called dither). If you'd adjust levels on converted image, you can see that banding is largely still there, but is masked by noise, which makes the banding almost imperceptible to human eye.
I'm not Corona Team member. Everything i say, is my personal opinion only.
My Models | My Videos | My Pictures

2025-09-24, 09:03:53
Reply #6

JuL

  • Users
  • *
  • Posts: 4
    • View Profile
Hi Romullus,

Well PS is doing it quite good as it becomes almost invisible...

However, at the risk of seeming rigid about it i would like to understand the bigger picture behind this banding effect's reason as we are talking of a 32 bits/channel procedural map processed in a render engine with wide RGB gammut if i am correct ?

2025-09-24, 10:10:40
Reply #7

romullus

  • Global Moderator
  • Active Users
  • ****
  • Posts: 9342
  • Let's move this topic, shall we?
    • View Profile
    • My Models
Well PS is doing it quite good as it becomes almost invisible...

Nobody says it doesn't. Introducing dither to mitigate colour banding effect in smooth gradients is nothing new and it's pretty good at that. Just to be clear that banding is not Corona's fault, it doesn't occur at rendering stage, but it's rather a consequence of converting higher bit depth image to a lower one.
I'm not Corona Team member. Everything i say, is my personal opinion only.
My Models | My Videos | My Pictures

2025-09-24, 11:34:07
Reply #8

pokoy

  • Active Users
  • **
  • Posts: 2008
    • View Profile
What romullus says.
Consider this - in the upper part of the image, the gradient goes across a brightness range of let's say about 30 integer steps (in 8 bits) over a distance of 1200 pixels, so you get bands of 30-40 pixels for each value.
For 16 bits, multiply those integer steps by a factor of 256. These 30-40 pixel bands now have 256 steps to represent a value, more than enough.

Not sure how to calculate 32 bits from that because float supports range outside of 0-1, but let's say it'll be even more steps.

2025-09-24, 11:39:57
Reply #9

zeropluszero

  • Users
  • *
  • Posts: 2
    • View Profile
Thanks for the information Romullus, but from an artistic point of view, dithering or not, the present behaviour is not satifying at all ! I am quiet surprised that there aren't many users reporting this as it might affect almost everyone.
I sincerly hope Corona's team will work on a solution to provide some clean, smooth skies quickly :)

Cheers

2025-09-24, 12:02:20
Reply #10

pokoy

  • Active Users
  • **
  • Posts: 2008
    • View Profile
By that you mean adding dither to the Sky map? Head over to the Ideas portal and create an entry for that, I don't think support people follow every thread closely.

I suggest working in 16 bits at minimum *always*. It'll allow you to produce clean results especially when using high resolutions, fine gradients, contrasts and color shade changes in post production etc as you'll have a much larger numerical resolution to work with. Yes, it's using more disk space, yes, it's a bit slower in PS but if you work in 8 bits you're neglecting basic solutions to a decades old problem. That's one reason why video/comp apps default to 32 bits nowadays and offered full 16/32 bits workflows since 20+ years.

There's an old bit of wisdom in music production that goes 'don't fix in the mix', which applies to basically any signal processing pipeline.

2025-09-24, 16:06:33
Reply #11

maru

  • Corona Team
  • Active Users
  • ****
  • Posts: 13858
  • Marcin
    • View Profile
Head over to the Ideas portal and create an entry for that, I don't think support people follow every thread closely.
Almost every thread. 🥲

By the way, here is the link to the Ideas Portal: https://chaoscorona.ideas.aha.io/
Marcin Miodek | chaos-corona.com
3D Support Team Lead - Corona | contact us

2025-09-25, 09:12:20
Reply #12

JuL

  • Users
  • *
  • Posts: 4
    • View Profile
Well PS is doing it quite good as it becomes almost invisible...

Nobody says it doesn't. Introducing dither to mitigate colour banding effect in smooth gradients is nothing new and it's pretty good at that. Just to be clear that banding is not Corona's fault, it doesn't occur at rendering stage, but it's rather a consequence of converting higher bit depth image to a lower one.

Hi, and thanks again for your time trying to clarify that problem.

If that is the consequence of converting higher bit depth image to a lower one as you mention, shouldn't it affect the 32 bits HDRis we are using in the same way ? Because it is way more visible on the CoronaSky map...

2025-09-25, 09:36:57
Reply #13

romullus

  • Global Moderator
  • Active Users
  • ****
  • Posts: 9342
  • Let's move this topic, shall we?
    • View Profile
    • My Models
If it's a HDRI of clear sky with smooth gradient, then yes, it should suffer from the same banding issue when saving to 8 bit image.
I'm not Corona Team member. Everything i say, is my personal opinion only.
My Models | My Videos | My Pictures

2025-09-25, 09:40:59
Reply #14

romullus

  • Global Moderator
  • Active Users
  • ****
  • Posts: 9342
  • Let's move this topic, shall we?
    • View Profile
    • My Models
If it's a HDRI of clear sky with smooth gradient, then yes, it should suffer from the same banding issue when saving to 8 bit image.

On the other hand, noise can be (and probably is) already baked in the HDRI, so that could be a reason why the banding is less likely to occur on HDRI skies, compared to Corona sky, which is procedural and has mathematically perfect gradient without any noise. But that's just my guess, i have no deep knowledge into this.
I'm not Corona Team member. Everything i say, is my personal opinion only.
My Models | My Videos | My Pictures