AuthorTopic: how to choose a colour pallette?  (Read 4618 times)

Offline fxokz

  • 0001
  • *
  • Posts: 35
  • Karma: +0/-0
    • View Profile

how to choose a colour pallette?

on: February 07, 2015, 01:57:00 pm
This is the one thing that really ruins my pixel art experience. Picking the colours. Can someone please help explain to me the best way? I want to learn

Offline yrizoud

  • 0010
  • *
  • Posts: 330
  • Karma: +0/-0
    • View Profile

Re: how to choose a colour pallette?

Reply #1 on: February 07, 2015, 02:36:20 pm
Here are the threads where Arne started discussions about how to create generic 16color and 32/64color palettes. It should show you how people "work".

http://wayofthepixel.net/index.php?topic=4306.0
http://wayofthepixel.net/index.php?topic=7864.0

And be sure to try a painting program which supports indexed colors mode... This is the easiest way to change your mind about colors while drawing, and even after the pixelling is final.

Offline tocky

  • 0011
  • **
  • Posts: 503
  • Karma: +0/-1
  • doublepostokrates
    • View Profile
    • my blog

Re: how to choose a colour pallette?

Reply #2 on: February 07, 2015, 03:03:53 pm
first of all, all colors are real. you can pick them at random and that will work, and if that doesnt work you can change it.

second of all, dont limit yourself to naturalistic color schemes (grey rocks green grass blue sky brown earth) bc you lose a lot of the quality of the light. all games with naturalistic color schemes look the same, and all ggames that use teh same palette look the same.

i ask you: is the C-64 palette naturalistic? or is it kind of weird and grey and purple? is that better or worse? i tell you: both.

we should have a wealth of different color palettes. each game should define its own palette. why is DAIKATANA yellow? why is TITANFALL blue and orange? why is THE MATRIX green?

ask yourself what is the symbolic meaning of the colors you are choosing. should the sky be yellow and bilious or green and vile?

certainly, you could make it blue. but even our own sky is not always blue, and it is more beautiful when it is not - because it can surprise us.

if your palette is TOO YELLOW. that is a feature and not a bug. it will make your work stand out among other works that are all the same.

http://wayofthepixel.net/index.php?topic=10010.0;

there are not many people here who truly understand color. ARNE is one, HELM and PTOING.... the old gods, right? but we need new gods if we are not to become complicit in our own destruction.

but AI understands color. however, AI will tell you that you do not understand color, and to some extent he is right. but he is wrong also.

AI understands the most arcane color spaces. and he will try to explain them to you. but noone uses these spaces because they are difficult to understand.

but AI muddies the waters. he makes it harder for us to understand the simplest color schemes, because we can see that they are not as good as the ONE TRUE COLOR SCHEME, the LAB space.

i tell you this: all colors are true.

http://www.pixeljoint.com/pixelart/58639.htm?msg=thx
« Last Edit: February 07, 2015, 04:05:56 pm by tocky »

Offline Ai

  • 0100
  • ***
  • Posts: 1057
  • Karma: +2/-0
  • finti
    • http://pixeljoint.com/pixels/profile.asp?id=1996
    • finticemo
    • View Profile

Re: how to choose a colour pallette?

Reply #3 on: February 08, 2015, 02:48:13 am
@OP:
There are many color scheme designer applications, including online ones. My personal favorite is GPick (admittedly a general palette editing app, not only for scheme design).

Any competent scheme designer will offer you a choice between several different basic schemes (eg. complementary, analogous, triadic), which are generated relative to the base color. I suggest you get some examples of art you like the color usage in, then analyze it by attempting to match your color scheme with one you see in the picture.

If you are attempting to imitate the feel of a particular material, I suggest getting many clear photo samples of that material, and trying to abstract out the common elements -- the trends of changes of hue, saturation and value. It's not important to be very detailed, it's better to just attempt to break it down to a few 'keyframes' (to use an animation analogy). If you do that successfully, you will have the colors you need to do an accurate basic rendering, and can choose to add intermediate colors later if you feel it's needed.

Another technique that can be informative is taking your photo samples of the material and using an image editor like GIMP to indexize them to a few colors (3-6). This gives an approximate picture of how colors are distributed, and their proportions, in the material.. Which is a good basis for making a more artistic, 'poppy'/exaggerated version.

Overall, I'd suggest you need to be more specific. If you say "I'm trying to do X, and this [image] is what my result is like, but it feels too Y and I don't know how to fix it", then we're much more able to make suggestions appropriate to your situation.

@tocky:

Personally I feel that GPick, for example makes those colorspaces easy to understand, since you can select colors interactively in any of those spaces. I also think that standard sRGB would be fine if it were actually linear -- because then it would match anyone's intuition in the sense that if you have two intensities, let's say 255 and 0, then the halfway point, 128, would be at least roughly midway in intensity between the two original intensities.
Because the sRGB space includes gamma companding, this is not the case. HSV and HSL, as simple transforms of the sRGB space, inherit that problem. I have seen newbies and even veterans making this mistake plenty of times: You can't just average values and get the midpoint, you can't just add N to make the color a constant amount brighter. Thus, it's more sensible to use a colorspace whose behaviour -does- have this property, whenever possible. Lab, Lch, and Luv all are reasonably good at achieving this behaviour. If you have a colorselector that works in -linear- RGB, that will have the property too. Most other colorspaces do not, so it requires more thought just to get a sensible result.

Further, I feel obligated to point out that 'All X are the true Y' is just as incorrect as 'only X is the true Y'. Colorspaces, like many other things, are designed for specific purposes. The appropriate colorspace to use is always the one that has the properties most suitable for the work you are doing.

I should also point out that a color scheme is in no way equivalent to a color space. A color scheme is a selection of colors intended for use together; a color space is a way of measuring and comparing colors.
« Last Edit: February 08, 2015, 03:08:05 am by Ai »
If you insist on being pessimistic about your own abilities, consider also being pessimistic about the accuracy of that pessimistic judgement.

Offline tocky

  • 0011
  • **
  • Posts: 503
  • Karma: +0/-1
  • doublepostokrates
    • View Profile
    • my blog

Re: how to choose a colour pallette?

Reply #4 on: February 08, 2015, 09:05:23 am
ai, im sorry for speaking ill of you, i think you're a good advocate for color but i can never quite understand what youre doing

Offline Ai

  • 0100
  • ***
  • Posts: 1057
  • Karma: +2/-0
  • finti
    • http://pixeljoint.com/pixels/profile.asp?id=1996
    • finticemo
    • View Profile

Re: how to choose a colour pallette?

Reply #5 on: February 08, 2015, 11:02:23 am
ai, im sorry for speaking ill of you, i think you're a good advocate for color but i can never quite understand what youre doing

Well, I'm not necessarily the best communicator.. I tend to have fits of willful obtuseness, so I have some responsibility in this too -- I have in fact received almost exactly the same critique before on my general manner of speaking.
That said, colorspaces is not a very simple subject: Even just the subject of how standard sRGB (which is what the majority of artists and paint programs use) works, could easily take a 4000 word essay to fairly describe.
Looking at Charles Poynton's Color FAQ, which covers really just the bare essentials, should give some impression of how large a subject this is.

I don't feel you spoke ill of me personally, I just felt that what you described didn't represent my views very accurately, and my post attempted to improve on that.

I am aware that most people either do not even realize colorspaces exist beyond the idea 'I can select colors using RGB or HSV color selectors', or don't care about using them effectively (which is admittedly a difficult task). This is why I prefer to promote Lab -- my experience is that it is better at consistently 'just working' than all other colorspaces I've tried, and 'just working' is, AFAICS, what aforementioned people want. Adding a constant amount of brightness -- easy. Calculating intermediate colors/gradients with pleasing and realistic colors -- easy. Changing hue without dramatically effecting brightness -- easy. sRGB doesn't deliver those properties, nor do HSL, HSV, HSB or YCbCr (though they may be good at other things, like designing color schemes)..

This is also a separate issue from the image colorspace. There are very good reasons to use sRGB to store colors, the most obvious of which are that it's efficient and it's the colorspace most monitors use. My comments on the problems with sRGB are entirely directed at the problem of picking and comparing colors accurately and efficiently -- which sRGB was never designed to be good for, people are mostly just.. using it because it's there, AFAICS. 

Promoting Lab is my attempt at a simple message that I hope will reduce confusion and bring people closer to simply making art rather than fighting with their tools, on average. It may be that I am failing in this, but that is my core message : "sRGB and relatives are unfriendly to select colors in (inconsistent and gets in the way of making art), Lab is significantly friendlier (reasonably consistent and mostly doesn't get in the way); Use the friendlier option whenever reasonably possible."
« Last Edit: February 08, 2015, 11:18:04 am by Ai »
If you insist on being pessimistic about your own abilities, consider also being pessimistic about the accuracy of that pessimistic judgement.

Offline tocky

  • 0011
  • **
  • Posts: 503
  • Karma: +0/-1
  • doublepostokrates
    • View Profile
    • my blog

Re: how to choose a colour pallette?

Reply #6 on: February 08, 2015, 12:23:17 pm
i feel like i understand rgb spaces pretty well these days, but it is an ongoing thing and i did not to start with the knowledge i have now.

like, it's a cartesian space, fully mapped, every point a valid color, and then you can treat colors as vertices within that space, and do vector math on them. this is a brief explanation but not an easy one, but if i try to unpack it i'll write a longer text, but not an easier one.

the idea that youd have to understand vectors to understand pixels and discrete spaces - again, hard to understand. but you need vector math to understand what you're really doing with even the standard straight lerp operation, which is essential to waht we do here, even if we do it in an art way and not a code one.

like the idea that 3d math is just 1d math but you do it three times: again, a simple idea hides the idea that it is complex.

i mean, i maintain that im an expert on color but i havent yet comprehended the lab space or what its for really, and not for lack of ai posts about it. i understand that maybe it gets you access to more colors, samples between the samples in the cubic 255-space - and maybe the screen knows how to display them because it displays light in a not-quite-discrete manner. but you have to know it to be able to know it, and the lab space lives at the end of my knowledge. i do not know it, i do not know why to know it. maybe it has something to do with the idea that red, green, and blue actuall arent at 90-degree axis off of one another, and we only represent them this way? tbh idk

those colors that the lab space gets us that rgb doesnt, can they be drawn on all screens? i dont honestly know how my computer is showing m things at the subpixel level, like i know it almost but not quite - these subpixel lights on my lcd, can that take positions other than the 255 states i imagine they know about?

is the lab space a cube? i dont know? i dont think so? if so is it fully defined? all i know is that its something other than what i know. i cant understand the term, 'friendly', like that one space might be more friendly than another. even if i believe this (hsb was more friendly than rgb for me at one point, these days i understand rgb and this is enough, i most;y dont need to convert between these.) but why is the lab space more friendly? i do not know because i do not know

idk, im writing the 4000w essay you described even though i imagined i dont have to write it. rgb spaces seem intuitive to me originally, the way that even vector math is now, but ill still write a lengthy and symbol-heavy diatribes where im mostly arguing with myself, or that part of myself that represents the other guy, and not with the other guy. so like all i know is that i do not know this thing, i dont even know what it is to know it or why i will want to other than that ai talks about it quite a lot.

i dont even really understand how to convert from rgb to hs-whatever even though i think its mostly just a simple function of the rgb values, and just subtraction at that (to get offsets maybe? to make the space circular? i do even not know why i know it)



Offline Ai

  • 0100
  • ***
  • Posts: 1057
  • Karma: +2/-0
  • finti
    • http://pixeljoint.com/pixels/profile.asp?id=1996
    • finticemo
    • View Profile

Re: how to choose a colour pallette?

Reply #7 on: February 08, 2015, 11:53:34 pm
i feel like i understand rgb spaces pretty well these days, but it is an ongoing thing and i did not to start with the knowledge i have now.

like, it's a cartesian space, fully mapped, every point a valid color, and then you can treat colors as vertices within that space, and do vector math on them.
I agree except for 'do vector math on them'. You can do that, but the result is usually wrong.
sRGB values are encoded with (two segments, with gamma=1.0 and gamma=2.4): this is why the perceptual midpoint between 0 and 255 is not 127 but 186. Similarly, if you add 64 to 0, the amount of perceptual difference between two colors is not
the same as the amount of perceptual difference between 255 and (255 - 64).

Most people do seem to treat it as a 3d vector (which is accurate). but you can't simply do vector math and expect a correct result; you have to remove the gamma companding first (ie. turn sRGB into linear RGB), then do your math, then add the gamma companding back in (ie. turn linear RGB into sRGB).
The result is not perceptually uniform, but it is closer to perceptual uniformity than simply performing math on sRGB values -- because simply adding, averaging etc sRGB values is almost without exception mathematically invalid.

Combining values that have companding built in is not a correct operation, you must always remove the companding first.
(Plenty of things cheat on this and just combine companded values anyway. for some things, you can get away with it, for others, it makes color mixing muddy, and for yet others, it results in incorrect metrics (eg. measuring distance between colors))


Quote
the idea that youd have to understand vectors to understand pixels and discrete spaces - again, hard to understand. but you need vector math to understand what you're really doing with even the standard straight lerp operation, which is essential to waht we do here, even if we do it in an art way and not a code one.
Yes, I'm thinking of stuff like antialiasing explanations. The 'ideal' intermediate color ramp can be calculated mathematically as a linear interpolation from color A to color B over S steps, but only if you are working with a colorspace that has a reasonable level of perceptual uniformity.

Quote
i mean, i maintain that im an expert on color but i havent yet comprehended the lab space or what its for really, and not for lack of ai posts about it. i understand that maybe it gets you access to more colors, samples between the samples in the cubic 255-space - and maybe the screen knows how to display them because it displays light in a not-quite-discrete manner. but you have to know it to be able to know it, and the lab space lives at the end of my knowledge. i do not know it, i do not know why to know it. maybe it has something to do with the idea that red, green, and blue actuall arent at 90-degree axis off of one another, and we only represent them this way? tbh idk
Any extra colors that Lab can specify are not part of sRGB, so not displayable on most monitors and therefore not relevant to most digital / pixel artists.
The value in Lab IMO is entirely about perceptual uniformity, IMO.
Like I stated, being able to add N and change the brightness by a constant, consistent amount; being able to average two colors and get an inbetween color that really looks like an inbetween color, not a distortion. These are things that you cannot achieve reliably in sRGB or even linear RGB; the colorspace is not designed in a way that makes it possible.

Lab is not perfect at this either; it's a pretty hard problem. It's just significantly better than the alternatives.

Quote
idk, im writing the 4000w essay you described even though i imagined i dont have to write it. rgb spaces seem intuitive to me originally, the way that even vector math is now, but ill still write a lengthy and symbol-heavy diatribes where im mostly arguing with myself, or that part of myself that represents the other guy, and not with the other guy. so like all i know is that i do not know this thing, i dont even know what it is to know it or why i will want to other than that ai talks about it quite a lot.

Dude, this is all the theoretical stuff. But if you get a colorpicker like GPick, and use the Lab colorselector (and the blend generator in Lab mode), you can see for yourself how it behaves and if you like how it feels, if you find it useful or not. I believe that it is, but you need not take my word for it, try it and see what you think. GPick is free / opensource.

Quote
i dont even really understand how to convert from rgb to hs-whatever even though i think its mostly just a simple function of the rgb values, and just subtraction at that (to get offsets maybe? to make the space circular? i do even not know why i know it)
I'm not sure what to make of this. It makes me think that perhaps, although you get that RGB, HSB, etc are vectors, you don't understand how they relate to displayed colors? That question is at the heart of my objection to performing math on RGB values : their nonlinear relationship to displayed colors.

Anyway, HSL, HSB, HSV etc are different polar transforms of the sRGB space. You can do them based off linear RGB and this looks/works a little better than sRGB, but as a rule nobody does. The Wikipedia page describes the sRGB->HS[B/L/I/V] transform fairly clearly, starting at Hue and Chroma section.
« Last Edit: February 09, 2015, 03:02:40 am by Ai »
If you insist on being pessimistic about your own abilities, consider also being pessimistic about the accuracy of that pessimistic judgement.

Offline tocky

  • 0011
  • **
  • Posts: 503
  • Karma: +0/-1
  • doublepostokrates
    • View Profile
    • my blog

Re: how to choose a colour pallette?

Reply #8 on: February 09, 2015, 08:03:00 am
ai i do not know why you say what you say but i do love you. ill check out your fancy color box