Gradient banding reduction
-
@d-healey
???
I'll have acces to multiple screen today, I'll take a look there -
@d-healey I tested it with several different screens and the same is happenning : I'm seeing bands on your example and my last one (PC) but not on my first ones (MAC)...
-
@Matt_SF we have the problem quite often anti aliasing and dithering is completely different when comparing win and mac. I dont use mac often but juce gui elements looks way smoother on mac.
-
@Straticah I was reading something on the JUCE forum that Mac uses a different rendering system that helps smooth out gradients.
-
I'm dealing with large area gradients again and this is coming up.
Windows:
macOS
Looks a tiny bit worse in the captures, but the Windows version always looks bad. @Christoph-Hart is this entirely a JUCE thing and out of your hands?
I get the same results whether I'm running Windows on an RTX3080 PC or inside Parallels on a MacBook, so it's definitely software.
-
@aaronventure said in Gradient banding reduction:
is this entirely a JUCE thing and out of your hands?
Yes. There was some work done in JUCE 8 that introduced a new Direct2D renderer which might or might not help with this, but the legal implications of the JUCE 8 license will keep us on JUCE 7 for the foreseeable future, so...
Does this change if you use the OpenGL renderer?
-
@Christoph-Hart said in Gradient banding reduction:
Does this change if you use the OpenGL renderer?
Reply
What like the switch in the settings? Or if I draw a gradient in an openGL shader?
Just having openGL enabled and in use (even if another shader animation is running) doesn't change the paint routine gradient quality, it's just as bandy.
What's up with JUCE 8 license? Didn't they walk back on a bunch of stuff? I'm aware it'll need a license for the distributor just like HISE, but what's the interaction with HISE?
-
I'm aware it'll need a license for the distributor just like HISE, but what's the interaction with HISE?
I don't want to derail that thread to become a JUCE 8 discussion (so if there is a demand for talking about it let's move it to a separate thread), but long story short:
their attempt to crack down on a vaguely described illegitimate use case causes any platform that provides the ability to create program logic to consider every contributor as a JUCE developer. So if you have a setup where a few people were working on a HISE project, you might end up requiring a license seat for each developer, regardless of whether he is actually using JUCE (= compiling the plugin) or just working on graphics or anything else that is not "close to the metal". This in combination with the increased pricing for each seat can lead up to license cost increases of 500% - 1000% in the worst case setup (which would be a team of 5 developers working with HISE with a single JUCE 6 / 7 license).
I know of a few project team setups which are using HISE and are negatively affected by this change so I've decided to hold off updating to JUCE 8 unless there is a really game-breaking issue. There are a few nice things in JUCE 8 like the monitor-refresh rate synced animation framework and the new Direct 2D renderer, but none of those justify that legal fiasco.
-
Ouch....
-
@ustk Is this Windows? Large gradient areas really suck here, which means you have to use rasterized images or just do something else.
Have you tried a flat color, and then adding drop shadow on top? I wonder if melatonin would fix that (when it gets implemented for shadows and blur one day).
-
@aaronventure It's on mac... This isn't an image but a panel with a 3 gradient fill (I should have mentioned that...) So the middle should be a bit darker (or lighter) than the two sides. In this case a blur won't help, well in fact maybe I can fake it with a big value...
But the problem with shadows is that you need a mask if you don't want them to spillover
The shadows are looking good for now in my project when kept rather small... But the limitations we see as soon as there's a gradient (or shadow) really show the limitations we have with Juce. I could just go with images but I like the flexibility, precision, and lightweight of vectors
-
@Christoph-Hart In the same vein, mask aren't rescaling properly with the interface zoom. I thought this was fixed long ago.
There probably are other methods with the same issue...