aboutsummaryrefslogtreecommitdiff
path: root/src/light.cpp
diff options
context:
space:
mode:
authorElias Fleckenstein <eliasfleckenstein@web.de>2020-11-04 16:19:54 +0100
committerElias Fleckenstein <eliasfleckenstein@web.de>2020-11-04 16:19:54 +0100
commitad148587dcf5244c2d2011dba339786c765c54c4 (patch)
treebdd914121cd326da2ed26679838878e3edffc841 /src/light.cpp
parent1145b05ea0bda87dc0827821385810eced08f774 (diff)
downloaddragonfireclient-ad148587dcf5244c2d2011dba339786c765c54c4.tar.xz
Make Lint Happy
Diffstat (limited to 'src/light.cpp')
-rw-r--r--src/light.cpp30
1 files changed, 15 insertions, 15 deletions
diff --git a/src/light.cpp b/src/light.cpp
index 8196fedff..af8666e5d 100644
--- a/src/light.cpp
+++ b/src/light.cpp
@@ -29,16 +29,15 @@ static u8 light_LUT[LIGHT_SUN + 1];
// The const ref to light_LUT is what is actually used in the code
const u8 *light_decode_table = light_LUT;
-
-struct LightingParams {
- float a, b, c; // Lighting curve polynomial coefficients
+struct LightingParams
+{
+ float a, b, c; // Lighting curve polynomial coefficients
float boost, center, sigma; // Lighting curve parametric boost
- float gamma; // Lighting curve gamma correction
+ float gamma; // Lighting curve gamma correction
};
static LightingParams params;
-
float decode_light_f(float x)
{
if (x >= 1.0f) // x is often 1.0f
@@ -46,7 +45,7 @@ float decode_light_f(float x)
x = std::fmax(x, 0.0f);
float brightness = ((params.a * x + params.b) * x + params.c) * x;
brightness += params.boost *
- std::exp(-0.5f * sqr((x - params.center) / params.sigma));
+ std::exp(-0.5f * sqr((x - params.center) / params.sigma));
if (brightness <= 0.0f) // May happen if parameters are extreme
return 0.0f;
if (brightness >= 1.0f)
@@ -54,25 +53,26 @@ float decode_light_f(float x)
return powf(brightness, 1.0f / params.gamma);
}
-
// Initialize or update the light value tables using the specified gamma
void set_light_table(float gamma)
{
-// Lighting curve bounding gradients
+ // Lighting curve bounding gradients
const float alpha = rangelim(g_settings->getFloat("lighting_alpha"), 0.0f, 3.0f);
- const float beta = rangelim(g_settings->getFloat("lighting_beta"), 0.0f, 3.0f);
-// Lighting curve polynomial coefficients
+ const float beta = rangelim(g_settings->getFloat("lighting_beta"), 0.0f, 3.0f);
+ // Lighting curve polynomial coefficients
params.a = alpha + beta - 2.0f;
params.b = 3.0f - 2.0f * alpha - beta;
params.c = alpha;
-// Lighting curve parametric boost
+ // Lighting curve parametric boost
params.boost = rangelim(g_settings->getFloat("lighting_boost"), 0.0f, 0.4f);
- params.center = rangelim(g_settings->getFloat("lighting_boost_center"), 0.0f, 1.0f);
- params.sigma = rangelim(g_settings->getFloat("lighting_boost_spread"), 0.0f, 0.4f);
-// Lighting curve gamma correction
+ params.center = rangelim(
+ g_settings->getFloat("lighting_boost_center"), 0.0f, 1.0f);
+ params.sigma = rangelim(
+ g_settings->getFloat("lighting_boost_spread"), 0.0f, 0.4f);
+ // Lighting curve gamma correction
params.gamma = rangelim(gamma, 0.33f, 3.0f);
-// Boundary values should be fixed
+ // Boundary values should be fixed
light_LUT[0] = 0;
light_LUT[LIGHT_SUN] = 255;