Disclaimer: I sorta figured this stuff out on my own. I did a tiny bit of research for this post, but I’m not very well-read at all on this particular field. So, there’s a decent chance I got something wrong. Oops… Please don’t take what I write here as gospel, and please let me know what I screwed up in the comments.
When I was a kid, I was taught some really confusing and vague things about color. There were the Official Colors of the Rainbow–red, orange, yellow, green, blue, indigo, violet (Roy G. Biv). Three colors were always called primary colors, but there seemed to be disagreement about whether the third one was yellow or green. (Yellow seemed like the obvious choice, though, since green’s just a mixture of blue and yellow. Right? How would you even make yellow from red, green, and blue?) There were various formulas for combining colors together to get other colors when I was painting in art class (E.g., red and green makes brown). But then there were different rules for mixing different colors of light together–like how white light is apparently a mixture of all other colors of light or something. There was also that weird line about why the sky was blue, which seemed to me to be equivalent to “The sky is blue because it’s blue.”
All of this left me very confused, with a lot of unanswered questions: Why isn’t brown a color of the rainbow? Sure, it’s a mixture of other colors, but so are green and orange and purple and whatever the hell indigo is. If orange isn’t a primary color, does that mean that everything that’s orange is really just red and yellow? And why is violet all the way on the other side of the rainbow from red even though it’s just a mixture of red with blue?
At the time, I was too shy to ask because people seemed so incredibly not bothered by all of this. I assumed I must have been missing something obvious.
As it happens, what I was missing isn’t at all obvious, but it’s also pretty easy to explain. (In particular, kids should be taught this.) All of this confusion goes away when you realize what color is and how our eyes and brains measure it. I’ll give a characteristically wordy explanation:
Light, energy, etc.
As you probably know to some extent or another light is made up of things called photons. That’s not science; it’s vocabulary.
There is one relevant scientific fact about photons, though; they come with a number attached to them: an energy. There are lots of analogies about photons that try to explain the energy in various different ways, as a wavelength or a frequency or whatever, but they all fail in various ways and tend to lead to more confusion. I don’t think we need an analogy, though: A photon is something that flies through space that has some energy associated with it. That’s not an analogy; it’s just what a photon is.
Your eye is more-or-less just a detector that catches photons and tries to figure out their energy. This is actually a really convenient type of detector to have.
First of all, there’s lots of photons around because we live near a giant ball of really hot gas called the sun that is constantly spraying out tons of those things. So, a photon detector will have lots to detect unless the Earth happens to be between us and sun (i.e., unless it’s night). That’s already really helpful, since whether or not the sun happens to be visible has a ton of effects on our surroundings, so it’s a good thing to try to figure out.
Second, when these photons from the sun bounce off of stuff on Earth, some things, like coal, pretty much completely absorb them. Other things, like steel, almost completely reflect them. So, our eyes can figure out if they’re facing something like steel or something like coal just by checking if there happen to be any photons hitting their retina. If our eyes are a bit more sensitive than that, they can help us distinguish between all sorts of things based on the fraction of photons that bounce off of them. We perceive this as brightness.
Third, almost all materials treat photons with different energies differently. (This is because of weird quantum mechanical effects that are completely outside of the scope of this post.) The sun is a giant ball of gas that sprays out photons of more-or-less all energies, and when these photons hit a particular material, photons with different energies are absorbed or reflected at different rates. If you could plot a graph showing the fraction of light that a certain material reflects at all different energies, then you’d have a fingerprint for each material. So, just by pointing your detector at something, you could identify what it’s made out of.
This is the idea behind color, but it’s not quite what our eyes and brains do.
From infinite dimensions to four
If we had unlimited resources, then our color detectors would probably draw the graph mentioned above for every point in space. In other words, at every point in space, for every possible energy of a photon, our brain would store a number representing the fraction of photons of that energy that that point in space is reflecting.
But, that would require storing infinitely many numbers for the infinitely many points in space. That’s obviously not going to happen in practice. So, we have to lump some stuff together.
We get rid of the infinite points in space by having individual cells on the retina that each act sort of like a pixel in your digital camera, effectively lumping together a chunk of space and assuming that it’s all the same brightness and color. That idea is simple enough, and we’ve got about 100 million or so such cells in each eye, so in practice, stuff looks pretty smooth.
Of course, we still can’t store infinitely many numbers for each of those pixels. So, we have to lump some energies together. Basically, instead of figuring out the fraction of photons that are reflected at 2 eV and 3 eV and 2.5 eV and 2.25 eV and 2.125 eV, etc., all separately, we just figure out the fraction of photons with between 2 eV and 3 eV that are reflected. (eV is just a convenient unit of energy. You can think of calories or joules or whatever if you prefer.) We divide the possible energies into finitely many buckets, and we only have to store a number for each bucket (at each pixel). Our brains use just four different buckets. To rough approximation, these buckets contain the energies that we perceive as blue, green, and red, plus one really big bucket that we use to gauge general brightness. (The big bucket is handled by the rod-shaped cells on your retina and the other three by the cones.)
But, this is a very rough approximation. In reality, our brains don’t use such simple buckets that just count photons between certain energies. Instead, they use a much more clever system: Each type of cell–each bucket–has sensitivity that varies with energy. The cones are most sensitive at the energies that we perceive as blue, green, and orange (though we call them red cones), but they actually still have a decent amount of sensitivity to all sorts of energies. Indeed, their sensitivity curves overlap a lot–They respond to a lot of the same photons:
This chart shows that.
This has a ton of advantages. First of all, it adds a lot of redundancy, which is good for extremely messy systems like the human body. For example, if this were not the case, people who were color-blind would literally just not be able to see things that were a certain color! (More accurately, they’d see them as black.)
But, most importantly, it provides a lot more information in typical situations. If we simply used disjoint buckets, then photons in the same buckets would look exactly the same color. For example, orange photons and yellow photons might appear exactly the same. By using overlapping buckets with varying sensitivity, we can be sure that photons with different energies look different, which is certainly a nice feature. For example, if you look at the graph above, you’ll see that orange light will excite both red and green cones, as will yellow light. But, yellow light will excite the two different types of cones to about the same extent, while orange light will excite the red cones much more than the green cones. By noting the ratio, we can distinguish between the two energies. A similar idea lets us more-or-less distinguish between any two energies.
This is what color is. Color is a representation of the relative excitation of the four different photoreceptor cells in your retina. E.g., cyan is what we see when our various cone cells are all excited to roughly the same degree.
But, the first law of physics is that there’s no such thing as a free lunch. And, these fancy buckets come with their own problem. In particular, while we can now distinguish between photons of different energies, there are now different mixtures of photons that look identical to us.
For example, if we detect a stream of photons that all have energy of about 2 eV, we’ll see cyan–Those are cyan photons. Our eyes will recognize that stream of light as cyan by noting that our red, blue, and green cones are all excited to a roughly even degree. But, if we detect light that’s got a mixture of photons with different energies–Maybe some are blue and some are green–that also excite all of our cones to a roughly even degree, then we’ll also see cyan. Our eyes and brains have absolutely no way to distinguish.
Naturally, this can and does lead to some confusion when finger painting.
Back to those questions
With this new understanding, it’s not hard to figure out the answer to all of those questions and a few other things.
Primary colors are any group of three colors that can be combined to achieve any possible ratios between the excitement of your different cone cells. Red, green, and blue are a natural choice because we can more-or-less think of them as each separately exciting a different cone cell. But, yellow might seem like more of a primary color because of the way that our brain happens to represent it, and it works just as well. (At least to me, green sort of feels like a mixture of blue and yellow, but yellow doesn’t really feel like a mixture of red and green.)
So, an RGB projector cannot create mixtures all the infinite possible different energies of light that can hit our eyes; it can just create mixtures of three different energies of light. However, our eyes can’t tell the difference between that set of mixtures and what it really encounters!
Similarly, something that’s orange might just be reflecting orange light, or it might be reflecting some mixture of red and yellow light. Most likely, it’s reflecting some really complicated mixture of different energies. But, our eyes just can’t tell the difference.
Brown is what our brains see when a stream of light excites our cones in some specific way that could not possibly come from a stream of photons that all have the same energy. That’s why brown isn’t in the rainbow–No single energy can produce it. Similarly, white is what we see when we get a roughly even mixture of lots of energies. (Look at the graph above and try to figure out how we can distinguish between cyan and white.)
Purple is a sort of interesting effect as far as I can tell. First of all, there’s a vocabulary problem: Technically, violet is high energy light, and purple is a color that we see from a mixture of red and blue light.
I’m not entirely sure (The internet really failed me on this one), but I think that the reason the two look about the same has to do with the fact that the sensitivity of red and green cones actually increases as light moves from cyan to blue. I don’t know why that is, but perhaps it’s simply a biological accident. Because of this increase where one would naturally expect a decrease, light that is even more energetic than blue–violet light–actually excites the cones in a very similar way that blue and red light combined do. It really shouldn’t, but it does. As a result, we see violet light as if it were red mixed with purple.
It’s also probably the case (Again, the internet failed me, so this is me speculating) that real pure violet light is relatively rare in practice. So, it probably doesn’t hurt us much that we’ve got this little bug in our vision system.
Oh. Also, the sky is blue because blue light bounces around a lot in the atmosphere. Other wavelengths of light just go straight through, so when you look at the sky, you only see those when you look right at the sun. Blue light bounces around a lot, so all the blue light from the sun ends up bouncing around a lot before it reaches our eyes. It therefore ends up coming from roughly everywhere in the sky. The sun appears to be yellow instead of white because very little of the blue light that comes to us from the sign takes a straight path. So, when we look directly at the sun, we see white light with most of the blue taken out, which looks yellow.
So, yeah. That’s color as I understand it. Please let me know in the comments if I screwed something up. Also, if you like this sort of stuff, you might want to follow me on Twitter, subscribe to my RSS, or check out my poker blog.