Jump to content

Dithered Gradients


Recommended Posts

When it comes to gradients, Paint.NET is pretty lacking. Since it doesn't dither, subtle gradients end up looking stripey and altogether not very attractive. Is there a way we could add this option?

For those who don't know, dithering is when you make a checkerboard pattern of two different colors to blend them together. When used within gradients, it makes the gradient look even more smooth especially when transitioning between two similar colors. To see what I mean for yourself, draw a gradient and click on parts of it with :MagicWandTool: at 0% tolerance. Notice the stripes? The larger the size and the smaller the difference between the two colors, the wider these stripes become - sometimes resulting in a very harsh look.

Link to comment
Share on other sites

With 16.8 million colors available on a modern computer monitor, dithering is the absolute worst looking way to create gradients.

If you want a dithered gradient, dither it manually, but it'll look even worse than what you're complaining about.

xZYt6wl.png

ambigram signature by Kemaru

[i write plugins and stuff]

If you like a post, upvote it!

Link to comment
Share on other sites

Also keep in mind that the GIF file format dithers.

 

The Doctor: There was a goblin, or a trickster, or a warrior... A nameless, terrible thing, soaked in the blood of a billion galaxies. The most feared being in all the cosmos. And nothing could stop it, or hold it, or reason with it. One day it would just drop out of the sky and tear down your world.
Amy: But how did it end up in there?
The Doctor: You know fairy tales. A good wizard tricked it.
River Song: I hate good wizards in fairy tales; they always turn out to be him.

Link to comment
Share on other sites

With 16.8 million colors available on a modern computer monitor, dithering is the absolute worst looking way to create gradients.

If you want a dithered gradient, dither it manually, but it'll look even worse than what you're complaining about.

Actually if you check out Photoshop's rendering with dithering enabled, it often creates a smoother and more pleasant looking gradient.

The Paint.NET Blog: https://blog.getpaint.net/

Donations are always appreciated! https://www.getpaint.net/donate.html

forumSig_bmwE60.jpg

Link to comment
Share on other sites

With 16.8 million colors available on a modern computer monitor, dithering is the absolute worst looking way to create gradients.

Purely dithered gradients do look bad, but that's because they only use two colors. What I'm talking about is the Photoshop style of dithering that combines your standard Paint.NET gradient with dithering to smooth the transition between the intermediate colors. Here's a magnified picture I made of two similar gradients with a selection using the magic wand tool on 0% tolerance.

gradientoz3.png

This seems to me like it wouldn't be all that difficult to implement and it really improves the look of gradients.

Link to comment
Share on other sites

Wouldn't work. Dithering applies when rendering to a medium that cannot display the full precision of the source. In other words, the gradients would need to be internally rendered at 16-bits per component, then dithered down to 8-bits per component for display purposes.

The Paint.NET Blog: https://blog.getpaint.net/

Donations are always appreciated! https://www.getpaint.net/donate.html

forumSig_bmwE60.jpg

Link to comment
Share on other sites

How about just doing a regular Paint.NET gradient followed by the Frosted Glass effect?

Haha! Of course! That works great! I find that frosted glass :FrostedGlass: with settings 4,0,1 mimics the effect almost perfectly for most gradients.

Yeah, don't ever say that. Being easy to use has no relationship on difficulty to implement.

So there! Don't come to hasty conclusions. In order to fully implement this, one would merely need to make the gradient tool apply the frosted glass effect afterwards with the maximum scatter radius as a function of the difference between the two gradient colors and its total length.

I see no reason why this should not be used in replacement of the current gradient tool.

Wouldn't work. Dithering applies when rendering to a medium that cannot display the full precision of the source. In other words, the gradients would need to be internally rendered at 16-bits per component, then dithered down to 8-bits per component for display purposes.

Um.... what? I've done the effect myself and it does solve the problem. You see, the issue is that Paint.NET gradients make rectangles of color transitioning between two colors. If you're going from FFFFFF to FDFFFF then there's only one intermediate color and hence there will be only three rectangles - which can be really bad-looking. Frosted glass fixes this because it blurs the edges between the rectangles. Gaussian blurring wouldn't work because the adjacent rectangles are already as close together as possible without being the same color - so frosted glass is the only way to go. Also, if you make the maximum scatter radius a function of the size of the rectangles and the overall gradient, the effect would work fine for any size of gradient.

Bam. You can see pretty clearly the gradient lines on the left even outside of the selection. But on the right...

gradient2aw5.png

Link to comment
Share on other sites

How about rather than posting snide comments you actually say what you don't like about my idea. What exactly is wrong with making the gradients in Paint.NET look more smooth?

There's nothing wrong with making the gradients look more smooth. The problem is the way you seem to think every idea you think up is golden, and should be immediately be incorporated into Paint.NET. The problem is how you believe that it's incredibly easy to make whatever changes to the program.

How about you go ahead and download the source code for Paint.NET, look through all ~150,000 lines of code, and then tell us again how easy you think this all would be.

So then, the problem is, you think you know more about programming than programmers do.

And, unless you live in complete isolation, snide comments are a part of life. Deal with it.

xZYt6wl.png

ambigram signature by Kemaru

[i write plugins and stuff]

If you like a post, upvote it!

Link to comment
Share on other sites

No offense pyro, but consider his join date. Most people here don't understand anything about coding, and if you see something in an application, it is actually common to think "hey just copy the code".

It's not that, it's the fact that even after

Yeah, don't ever say that. Being easy to use has no relationship on difficulty to implement.
he still seems to think that everything he says should immediately be added to Paint.NET.

xZYt6wl.png

ambigram signature by Kemaru

[i write plugins and stuff]

If you like a post, upvote it!

Link to comment
Share on other sites

It's not that, it's the fact that even after
Yeah' date=' don't ever say that. Being easy to use has no relationship on difficulty to implement.[/quote']he still seems to think that everything he says should immediately be added to Paint.NET.
There's nothing wrong with making the gradients look more smooth. The problem is the way you seem to think every idea you think up is golden, and should be immediately be incorporated into Paint.NET. The problem is how you believe that it's incredibly easy to make whatever changes to the program.

How about you go ahead and download the source code for Paint.NET, look through all ~150,000 lines of code, and then tell us again how easy you think this all would be.

So then, the problem is, you think you know more about programming than programmers do.

Yeah...if by "everything I say" and "every idea I think up", you mean the one single idea I have suggested. Secondly, I'm not a newbie, I've been using Paint.NET for a while and this is my new account on the forums. Also, I happen to know how to program in several languages. I never once meant that it would be easy to implement this idea, what I meant was that it seems to me like it would be a lot easier to implement (and more useful) than a lot of the other features I've seen requested.

Furthermore, I suggested this idea and Rick Brewster said that it wasn't feasible to implement due to needing 16-bits per pixel and whatnot. However, I pointed out that a simple frosted glass filter accomplished the effect. And woah! All of a sudden I'm a know-it-all who think he's better than Paint.NET's lead programmer? Did I miss the part in the forum rules that we're not allowed to disagree with the developers?

No, I'm sorry. I take it all back. I am a mere newbie and you, pyrochild - 2007 Plugin Author Award Winner, are right. While this neat little dithered gradient effect is useful and a visual improvement over Paint.NET's current gradients it is technically infeasible - nay - impossible to implement and no attempt should ever be made to add it into the program. As for me, I shall forever walk the Earth as punishment for pointing out an area in which Paint.NET could be improved and for having the unspeakable indeceny to suggest a method by which it might be implemented.

You're a jerk.

Link to comment
Share on other sites

Don't call other names, as nobody here called you names.

They are trying to reason with you and let you know it's not as easy as you think.

How about you lose the attitude.

Use the method BoltBait memtioned for now.

Wait for Rick to work at his own progress.

Or..better yet, since you happen to know how to program in several languages.

Maybe you can try to code it and show others how "easy" it is.

The_next_thousand_words_by_0_ASH_0.png

All creations Ash + Paint.NET [ Googlepage | deviantArt | Club PDN | PDN Fan ]

Link to comment
Share on other sites

I'm not a newbie, I've been using Paint.NET for a while and this is my new account on the forums.
Never said you were.
Also, I happen to know how to program in several languages. I never once meant that it would be easy to implement this idea
If "one would merely need to...", "I see no reason why this should not...", and "it does solve the problem" don't imply "easy as 1-2-3!", then I'm a donut.
You're a jerk.
I know, but if you feel the need to personally insult me, do so in a PM; the forum is not the place for it.

xZYt6wl.png

ambigram signature by Kemaru

[i write plugins and stuff]

If you like a post, upvote it!

Link to comment
Share on other sites

Okay, if this is what this topic is going to descend into, I'm going to lock it.

Feel free to post again once you've lost the attitude. Thanks. :-)

Thread Locked

 

The Doctor: There was a goblin, or a trickster, or a warrior... A nameless, terrible thing, soaked in the blood of a billion galaxies. The most feared being in all the cosmos. And nothing could stop it, or hold it, or reason with it. One day it would just drop out of the sky and tear down your world.
Amy: But how did it end up in there?
The Doctor: You know fairy tales. A good wizard tricked it.
River Song: I hate good wizards in fairy tales; they always turn out to be him.

Link to comment
Share on other sites

Okay, if this is what this topic is going to descend into, I'm going to lock it.

Good call. (I'm sneaking in some post-lock commentary here, bear with me ...)

I never said 16-bits per component was infeasible to do. Frosted Glass after drawing the gradient appears to give you what you are looking for, and so that's great, and it's a good thing we can recommend to others who have the same question or issue. I can tell you that mathematically they are definitely not equivalent -- something that doesn't always matter, btw. 16-bpp internal rendering with dithered 8-bit output would be a more optimal generalized solution, and would also have great utility in areas of Paint.NET's rendering other than gradients, and is also something I'm thinking of implementing anyway, and so that's why I mentioned it.

The problem we're having here is that you're being very defensive, you're very new to the forums, and you're projecting or at least coming across as being a snotty know-it-all. As far as I know you're 10 minutes from publishing the Grand Unified Theory of The Universe (which clearly lies in legitimate well-earned "know it all" territory), but right now you're coming across as an arrogant < no swearing > who's telling the senior members of the forum that they're idiots. So like david.atwell said, if you want to discuss this then cool -- just lose the attitude. If we're really wrong, then prove it to us with rational, intelligent, objective discussion. It works better than rolled eyes and middle fingers (to make an analogy).

The Paint.NET Blog: https://blog.getpaint.net/

Donations are always appreciated! https://www.getpaint.net/donate.html

forumSig_bmwE60.jpg

Link to comment
Share on other sites

Guest
This topic is now closed to further replies.
 Share

×
×
  • Create New...