diff options
Diffstat (limited to 'src/lighting.h')
| -rw-r--r-- | src/lighting.h | 28 |
1 files changed, 28 insertions, 0 deletions
diff --git a/src/lighting.h b/src/lighting.h index 6c837568b..9c4211605 100644 --- a/src/lighting.h +++ b/src/lighting.h @@ -19,10 +19,38 @@ with this program; if not, write to the Free Software Foundation, Inc., #pragma once + +/** + * Parameters for automatic exposure compensation + * + * Automatic exposure compensation uses the following equation: + * + * wanted_exposure = 2^exposure_correction / clamp(observed_luminance, 2^luminance_min, 2^luminance_max) + * + */ +struct AutoExposure +{ + /// @brief Minimum boundary for computed luminance + float luminance_min; + /// @brief Maximum boundary for computed luminance + float luminance_max; + /// @brief Luminance bias. Higher values make the scene darker, can be negative. + float exposure_correction; + /// @brief Speed of transition from dark to bright scenes + float speed_dark_bright; + /// @brief Speed of transition from bright to dark scenes + float speed_bright_dark; + /// @brief Power value for center-weighted metering. Value of 1.0 measures entire screen uniformly + float center_weight_power; + + AutoExposure(); +}; + /** Describes ambient light settings for a player */ struct Lighting { + AutoExposure exposure; float shadow_intensity {0.0f}; float saturation {1.0f}; }; |
