From b5fdf5d5ba37aeeb49d9b51af105ee1a8d422016 Mon Sep 17 00:00:00 2001 From: Andrew Belt Date: Tue, 31 Oct 2017 09:35:34 -0400 Subject: [PATCH] Light::setBrightnessSmooth() turns on high values immediately, fades out low values --- src/engine.cpp | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/src/engine.cpp b/src/engine.cpp index 17e12785..6663e2bf 100644 --- a/src/engine.cpp +++ b/src/engine.cpp @@ -39,8 +39,15 @@ float Light::getBrightness() { } void Light::setBrightnessSmooth(float brightness) { - // lambda = 3 * framerate - value += (brightness * brightness - value) * sampleTime * (60.0 * 3.0); + float v = brightness * brightness; + if (v < value) { + // Fade out light with lambda = 3 * framerate + value += (v - value) * sampleTime * (60.0 * 3.0); + } + else { + // Immediately illuminate light + value = v; + } }