diff --git a/light/bounce.cc b/light/bounce.cc index b36641ba..dd14e893 100644 --- a/light/bounce.cc +++ b/light/bounce.cc @@ -223,9 +223,18 @@ static void MakeBounceLightsThread(const settings::worldspawn_keys &cfg, const m return; } + qvec3f total = {}; + for (auto &styleColor : sum) { styleColor.second *= (1.0f / totalarea); styleColor.second /= 255.0f; + + total += styleColor.second; + } + + // no bounced color, we can leave early + if (qv::emptyExact(total)) { + return; } // lerp between gray and the texture color according to `bouncecolorscale` (0 = use gray, 1 = use texture color) diff --git a/light/light.cc b/light/light.cc index 05e52205..37ea761d 100644 --- a/light/light.cc +++ b/light/light.cc @@ -901,10 +901,10 @@ int light_main(int argc, const char **argv) options.rangescale.setValue(1.0f); } if ((bspdata.loadversion->game->id == GAME_QUAKE_II) && !options.bouncecolorscale.isChanged()) { - options.bouncecolorscale.setValue(0.5f); + options.bouncecolorscale.setValue(1.0f); } if ((bspdata.loadversion->game->id == GAME_QUAKE_II) && !options.bouncescale.isChanged()) { - options.bouncescale.setValue(1.0f); + options.bouncescale.setValue(1.5f); } img::init_palette(bspdata.loadversion->game);