ice-boy opened this issue on Apr 30, 2009 · 12 posts
bagginsbill posted Thu, 30 April 2009 at 7:50 AM
I know exactly what it is. I am preparing a demonstration and a solution for you.
It is a combination of two things:
1) Color banding - RGB values are discrete steps from 0 to 255, not continuously variable smooth values. Thus a very slight gradient across the wall, for example from 190 to 195, has six discrete bands (190, 191, 192, etc.). Within each region the luminance of each RGB value is identical, instead of a continuous change from 190 to 190.02 then 190.05 etc.
2) Optical illusion - human eyes have special circuits to detect and highlight small changes in luminance. Basically, the eye does "sharpening" - tiny changes at a boundary are magnified by neurons that are looking for these. If I give you two flat colored squares to look at, far apart, and they differ in luminence only slightly, say 190 versus 191, you cannot tell the difference. You won't know which is the brighter one. But if I put them next to each other, you will be able to tell, because of your built-in edge detector. The net effect of your edge detector is that where there is a transition in luminance, you perceive the lighter part near the transition as being more lighter than it is and the darker part more dark than it is. When you have adjacent color bands at the right distance and with the right colors, you perceive a gradient within each constant luminance band, even though there isn't one. Moreover, you will often perceive that within the constant band, the green is changing more than red or blue. This makes it seem like there is extra green near each transition, which tapers off farther from the transition.
Renderosity forum reply notifications are wonky. If I read a follow-up in a thread, but I don't myself reply, then notifications no longer happen AT ALL on that thread. So if I seem to be ignoring a question, that's why. (Updated September 23, 2019)