Home | Up the bits. |
|
Introduction
HDR stands for high-dynamic-range. Most current hardware & software deals only with LDR rendering; using 8 bits to represent 256 levels of brightness (in Red, Green and Blue). With HDR, you go beyond these 256 levels to have more contrast. With LDR the best ratio is 256:1 (if you use a linear brightness system); with HDR 16-bits half float you can go much higher. You have to move away from thinking in 0..1 levels and starting thinking in luminance levels.
For background material, try these:
Background information on tonemapping
This gets technical. To get from HDR (16 or more bits) to 8-bits (LDR, what most monitors handle), you need tonemapping. Tonemapping is selecting which HDR lighting values you map to the limited range of monitors. A digital camera can capture around 4 stops of dynamic range; an eye can distinguish around 12 stops.
The original tonemapping in Racer was based on the exp() function. This squeezes the top part (whites) so detail is maintained. This is sometimes called the 'shoulder' of the tonemap curve. It seems you als want to have a 'toe' in the curve, to get better blacks. This is what Uncharted 2 used for example. Also, God of War III used a Reinhard method, which normally only does shoulder, but they added some stuff to add a toe (most probably, from what I gathered on the net).
Very interesting reads, if you can follow it, is here:
In Racer v0.8.22, I got Uncharted2 tone mapping to work finally. Gives a nice touch, a sort of look to things.
(last updated November 13, 2012 )