|
| StelToneReproducer () |
| Constructor.
|
|
virtual | ~StelToneReproducer () |
| Desctructor.
|
|
void | setDisplayAdaptationLuminance (float displayAdaptationLuminance) |
| Set the eye adaptation luminance for the display (and precompute what can be) Usual luminance range is 1-100 cd/m^2 for a CRT screen. More...
|
|
void | setWorldAdaptationLuminance (float worldAdaptationLuminance) |
| Set the eye adaptation luminance for the world (and precompute what can be) More...
|
|
float | getWorldAdaptationLuminance () const |
| Get the eye adaptation luminance for the world.
|
|
void | setInputScale (float scale=1.f) |
| Set the global scale applied to input lumiances, i.e before the adaptation It is the parameter to modify to simulate aperture*exposition time. More...
|
|
float | getInputScale () const |
| Get the global scale applied to input luminances, i.e before the adaptation.
|
|
void | setMaxDisplayLuminance (float maxdL) |
| Set the maximum luminance of the display (CRT, screen etc..) This value is used to scale the RGB range. More...
|
|
float | getMaxDisplayLuminance () const |
| Get the previously set maximum luminance of the display (CRT, screen etc..) This value is used to scale the RGB range. More...
|
|
float | getDisplayGamma () const |
| Get the display gamma. More...
|
|
void | setDisplayGamma (float gamma) |
| Set the display gamma. More...
|
|
float | adaptLuminance (float worldLuminance) const |
| Return adapted luminance from world to display. More...
|
|
float | reverseAdaptLuminance (float displayLuminance) const |
| Return adapted luminance from display to world. More...
|
|
float | adaptLuminanceScaled (float worldLuminance) const |
| Return adapted luminance from world to display with 1 corresponding to full display white. More...
|
|
float | reverseAdaptLuminanceScaled (float displayLuminance) const |
| Return adapted luminance from display to world with 1 corresponding to full display white. More...
|
|
float | adaptLuminanceScaledLn (float lnWorldLuminance, float pFact=0.5f) const |
| Return adapted ln(luminance) from world to display with 1 corresponding to full display white. More...
|
|
void | xyYToRGB (float *xyY) const |
| Convert from xyY color system to RGB. More...
|
|
void | getShadersParams (float &a, float &b, float &c) const |
|
The aim is to get on the screen something which is perceptualy accurate, ie. to compress high dynamic range luminance to CRT display range. The class perform mainly a fast implementation of the algorithm from the paper [1], with more accurate values from [2]. The blue shift formula is taken from [3] and combined with the Scotopic vision formula from [4].
Important : you may call setDisplayAdaptationLuminance() and setWorldAdaptationLuminance() before any call to xyYToRGB() or adaptLuminance otherwise the default values will be used. (they are appropriate for a daylight sky luminance)
REFERENCES : Thanks to all the authors of the following papers I used for providing their work freely online.
[1] "Tone Reproduction for Realistic Images", Tumblin and Rushmeier, IEEE Computer Graphics & Application, November 1993
[2] "Tone Reproduction and Physically Based Spectral Rendering", Devlin, Chalmers, Wilkie and Purgathofer in EUROGRAPHICS 2002
[3] "Night Rendering", H. Wann Jensen, S. Premoze, P. Shirley, W.B. Thompson, J.A. Ferwerda, M.M. Stark
[4] "A Visibility Matching Tone Reproduction Operator for High Dynamic
Range Scenes", G.W. Larson, H. Rushmeier, C. Piatko