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

@ -238,24 +238,41 @@ public class LightMapper
break;
}
}
CheckLightConfigurations();
}
private void CheckLightConfigurations()
{
var infinite = 0;
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)