Extract light configuration validation to method and add check for aggressive inner radius usage

This commit is contained in:
Jarrod Doyle 2025-02-02 08:42:22 +00:00
parent fafae43c56
commit 4827ffb76b
Signed by: Jayrude
GPG Key ID: 38B57B16E7C0ADF7
1 changed files with 27 additions and 10 deletions

View File

@ -239,23 +239,40 @@ public class LightMapper
} }
} }
CheckLightConfigurations();
}
private void CheckLightConfigurations()
{
var infinite = 0; var infinite = 0;
foreach (var light in _lights) foreach (var light in _lights)
{ {
if (light.Radius != float.MaxValue)
if (light.Radius == float.MaxValue)
{ {
continue; if (light.ObjId != -1)
{
Log.Warning("Object {Id}: Infinite light radius.", light.ObjId);
}
else
{
Log.Warning("Brush at {Position}: Infinite light radius.", light.Position);
}
infinite++;
} }
if (light.ObjId != -1) // TODO: Extract magic number
if (light.InnerRadius > 0 && light.Radius - light.InnerRadius > 4)
{ {
Log.Warning("Infinite light from object {Id}", light.ObjId); if (light.ObjId != -1)
{
Log.Warning("Object {Id}: High radius to inner-radius differential ({D}). Lightmap may not accurately represent lightgem.", light.ObjId, light.Radius - light.InnerRadius);
}
else
{
Log.Warning("Brush at {Position}: High radius to inner-radius differential ({D}). Lightmap may not accurately represent lightgem.", light.Position, light.Radius - light.InnerRadius);
}
} }
else
{
Log.Warning("Infinite light from brush near {Position}", light.Position);
}
infinite++;
} }
if (infinite > 0) if (infinite > 0)