exposureCompression
Two parameters that determine the brightness compression curve for colors in the camera’s image.
Declaration
var exposureCompression: vector_float2 { get set }Discussion
Simulating a real-world camera requires considering the way a pixel value captured by an imaging sensor is processed for display (or how a unit of film stock is developed and projected). Part of such consideration is the exposure compression function, which scales each color component value between minimum and maximum brightness.
Color values below the x component of this vector should be left unchanged. Color values at or above the y component of this vector should be clamped to the maximum display brightness. Values in between the x and y values should be smoothly scaled using a function such as a logarithmic ramp. A renderer can then derive a final pixel color (per channel) using the following formula:
output = pow(compressionFunction(baseValue), displayGamma)
In this formula, compressionFunction implements the clamping and scaling behavior described above, baseValue is derived as explained for the exposure property, and displayGamma is the gamma value of the output display device (for example, 2.0 for the default sRGB color space on Macs and iOS devices).