From 0419f5e38e5aa3e3375ff6157fbef063a44e8229 Mon Sep 17 00:00:00 2001 From: Jonathan Date: Mon, 4 Jul 2022 22:43:07 -0400 Subject: [PATCH] simplify minlight stuff adjust scalar for surface lights so they are visible without bounce (cherry picked from commit f4854ddb20b16bec111c88f3a0c28b295166447f) --- light/ltface.cc | 32 +++++++++++++++++++++----------- 1 file changed, 21 insertions(+), 11 deletions(-) diff --git a/light/ltface.cc b/light/ltface.cc index bc44fd27..0b033c94 100644 --- a/light/ltface.cc +++ b/light/ltface.cc @@ -3165,18 +3165,28 @@ void DirectLightFace(const mbsp_t *bsp, lightsurf_t &lightsurf, const settings:: LightFace_SurfaceLight(bsp, &lightsurf, lightmaps); } - /* minlight - Use Q2 surface light, or the greater of global or model minlight. */ - if (auto value = IsSurfaceLitFace(bsp, face)) { - LightFace_Min(bsp, face, Face_LookupTextureColor(bsp, face), *value * 2.0f, &lightsurf, - lightmaps); // Playing by the eye here... 2.0 == 256 / 128; 128 is the light value, at which the surface - // is renered fullbright, when using arghrad3 - } else if (lightsurf.minlight > cfg.minlight.value()) { - LightFace_Min(bsp, face, lightsurf.minlight_color, lightsurf.minlight, &lightsurf, lightmaps); - } else { - const float light = cfg.minlight.value(); - const qvec3d &color = cfg.minlight_color.value(); + float minlight = 0; + qvec3d minlight_color; - LightFace_Min(bsp, face, color, light, &lightsurf, lightmaps); + /* minlight - use the greater of global or model minlight, or Q2 surface emission */ + if (lightsurf.minlight > cfg.minlight.value()) { + minlight = lightsurf.minlight; + minlight_color = lightsurf.minlight_color; + } else { + minlight = cfg.minlight.value(); + minlight_color = cfg.minlight_color.value(); + } + + if (!minlight) { + if (auto value = IsSurfaceLitFace(bsp, face)) { + minlight = *value * 64.0f; + minlight_color = Face_LookupTextureColor(bsp, face); + } + } + + if (minlight) { + LightFace_Min(bsp, face, minlight_color, minlight, &lightsurf, + lightmaps); } /* negative lights */