Ragtopjohnny opened this issue on Aug 09, 2011 ยท 23 posts
bagginsbill posted Tue, 09 August 2011 at 12:07 PM
GC is gamma correction. In a nutshell:
Digital images express brightness of each color component using a non-linear curve. This is done so that shadow details can be represented better, and because historically it's how phosphors worked in television. All cameras, printers, TVs, and computer screens follow this rule. The characteristic parameter that describes the non-linearity is called gamma. Everything that follows the sRGB color standard assumes roughly a gamma of 2.2. Older Macs had a gamma of 1.8. (This is why Mac images from the pre-internet area, when viewed on a PC, looked like crap. Gamma 2.2 versus gamma 1.8.)
The rendering equations are all linear - i.e. if light reaching some point is half that of another point, the numbers representing that will be exactly half. They assume gamma is 1. In the world of gamma=2.2, 1/2 is approximately .73, not .5. This means that when comparing the RGB value 73 versus 100, the 73 looks half as bright. If you used 50, it would look much less than half as bright.
The fact that the linear rendering equations are being given non-linear image data for lighting and texures, and storing the results in non-linear image data for output, creates disparities. These disparities are most noticed in things that are dark - they appear too dark.
There are quite a few effects that create "dark". The most important:
Inverse square distance falloff from point and spot light sources. Unless focused, light energy spreads out as it proceeds away from its source. Things farther away receive less light per unit area.
Shadow and partial shadow obstruction of light.
Turning away from a light source (curved surfaces) creating changes in energy-per-unit-area.
All of these effects are directionally correct either way whether you pay attention to gamma or not. Gamma does not make up seem down. If you increase a light source intensity, everything it reaches gets brighter. If you block the light source with another object, things get darker.
But overall, everything is wrong, and if you're paying attention to details, you notice. Failure to address gamma means things are out of balance, always. If you arrange your lighting carefully, the imbalance is small. But, if you're doing something really demanding in terms of dynamic range, such as rendering a night scene where some things are dark and others are really bright, then it becomes extremely obvious that something is wrong.
The solution is you either use the right equations, or you compensate somehow.
Compensations (also known as hacks) include adding more lights, boosting shader diffuse values, etc. Hacking involves guessing and testing and refining for hours. It means things don't work as you expect. The more demanding the scene (dynamic range, lots of curves, variations in light in different areas and directions) the more difficult the hacking becomes.
The sound and easy way to compensate is gamma correction. All incoming material (colors chips in the material room, and color maps from images) should be converted to linear intensities. This is called anti-gamma correction, since these things already included the gamma factor. Then all the lighting effects are applied, and the final pixel color is gamma corrected before being stored in the render.
Poser Pro does this automatically. Poser (regular) does not. However, the functionality can be largely duplicated in regular Poser using gamma-correcting shaders. I am a heavy publisher of such shaders. The most famous among these are my skin shaders, which most people recognize as producing the best results with the least amount of work on your part, and do not require that you buy Poser Pro.
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)