bea4d1064c
This redefines the transfer functions to have a custom luminance at encoded value zero, and a custom luminance at encoded value 1, neither of which are tied to the reference luminance, even for relative transfer functions. The goal of that is that we can use a gamma 2.2 transfer function for the shadow buffer, with the reference luminance being much lower than the maximum luminance. For example, on an HDR screen you might have the reference luminance of 600 nits, while the maximum luminance is 1000 nits. By representing this in gamma 2.2, we can use a much smaller amount of bits per color to store the values than if we used a linear transfer function. An additional benefit is that this way the values in the buffer can be scaled by arbitrary amounts, for example to limit the range of values to [0, 1], which can be represented in a normalized buffer |
||
---|---|---|
.. | ||
colordevice.cpp | ||
colordevice.h | ||
colormanager.cpp | ||
colormanager.h |