From 1c56b060b1d3294f9c61bff2313d5bdac55893e2 Mon Sep 17 00:00:00 2001 From: Eric Wasylishen Date: Sun, 12 Feb 2023 13:00:30 -0700 Subject: [PATCH] light: use bounding box of face for lightgrid bounds tighter bounds than dmodel bounds --- light/light.cc | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/light/light.cc b/light/light.cc index d915f56d..269d4153 100644 --- a/light/light.cc +++ b/light/light.cc @@ -1057,7 +1057,11 @@ static void LightGrid(bspdata_t *bspdata) logging::funcheader(); auto &bsp = std::get(bspdata->bsp); - auto world_size = bsp.dmodels[0].maxs - bsp.dmodels[0].mins; + + auto faces_size = Model_BoundsOfFaces(bsp, bsp.dmodels[0]); + const qvec3f grid_maxs = faces_size.maxs(); + const qvec3f grid_mins = faces_size.mins(); + const qvec3f world_size = grid_maxs - grid_mins; // number of grid points on each axis const qvec3i grid_size = { @@ -1065,7 +1069,6 @@ static void LightGrid(bspdata_t *bspdata) ceil(world_size[1] / light_options.lightgrid_dist.value()[1]), ceil(world_size[2] / light_options.lightgrid_dist.value()[2]) }; - const qvec3f grid_mins = bsp.dmodels[0].mins; std::vector grid_result; grid_result.resize(grid_size[0] * grid_size[1] * grid_size[2]); @@ -1115,6 +1118,7 @@ static void LightGrid(bspdata_t *bspdata) logging::print(" {} lightgrid_dist\n", light_options.lightgrid_dist.value()); logging::print(" {} grid_size\n", grid_size); logging::print(" {} grid_mins\n", grid_mins); + logging::print(" {} grid_maxs\n", grid_maxs); logging::print(" {} num_styles\n", num_styles); // non-final, experimental lump