]> git.mxchange.org Git - flightgear.git/commitdiff
#591: night-time rendering issues, avoid negative color values
authorThorstenB <brehmt@gmail.com>
Sun, 5 Feb 2012 14:13:58 +0000 (15:13 +0100)
committerThorstenB <brehmt@gmail.com>
Sun, 5 Feb 2012 14:14:30 +0000 (15:14 +0100)
Fog color became negative at certain sun angles (around midnight), which
resulted in weird sky dome coloring issues.
Hack: simply clamp the value for now.

src/Time/light.cxx

index 65a917b1cc6f3a6771e13fa310876bc5d83cdbba..d5e17686aa4782e2f1c23acea2af169d9fe7c5bd 100644 (file)
@@ -381,10 +381,17 @@ void FGLight::update_adj_fog_color () {
 
     float rf1 = fabs(fmod(hor_rotation, SGD_2PI) - SGD_PI) / SGD_PI;
     float rf2 = avf * pow(rf1*rf1, 1/sif) * 1.0639 * _saturation * _scattering;
+
+    // HACK: clamp rf2 to 1.0.
+    // Somehow, rf2 is huge at certain sun angles (around midnight), which results in
+    // rf3 being negative and hence negative fog colors and weird display issues...
+    // Something more fundamental may be wrong with the formulas here...
+    if (rf2>1.0) rf2 = 1.0;
+
     float rf3 = 1.0 - rf2;
 
     gamma = system_gamma * (0.9 - sif*avf);
-    _adj_fog_color = rf3 * _fog_color + rf2 * _sun_color;;
+    _adj_fog_color = rf3 * _fog_color + rf2 * _sun_color;
     gamma_correct_rgb( _adj_fog_color.data(), gamma);
 
     // make sure the colors have their original value before they are being