Extract light configuration validation to method and add check for aggressive inner radius usage
This commit is contained in:
parent
fafae43c56
commit
4827ffb76b
|
@ -239,25 +239,42 @@ public class LightMapper
|
|||
}
|
||||
}
|
||||
|
||||
CheckLightConfigurations();
|
||||
}
|
||||
|
||||
private void CheckLightConfigurations()
|
||||
{
|
||||
var infinite = 0;
|
||||
foreach (var light in _lights)
|
||||
{
|
||||
if (light.Radius != float.MaxValue)
|
||||
{
|
||||
continue;
|
||||
}
|
||||
|
||||
if (light.Radius == float.MaxValue)
|
||||
{
|
||||
if (light.ObjId != -1)
|
||||
{
|
||||
Log.Warning("Infinite light from object {Id}", light.ObjId);
|
||||
Log.Warning("Object {Id}: Infinite light radius.", light.ObjId);
|
||||
}
|
||||
else
|
||||
{
|
||||
Log.Warning("Infinite light from brush near {Position}", light.Position);
|
||||
Log.Warning("Brush at {Position}: Infinite light radius.", light.Position);
|
||||
}
|
||||
infinite++;
|
||||
}
|
||||
|
||||
// TODO: Extract magic number
|
||||
if (light.InnerRadius > 0 && light.Radius - light.InnerRadius > 4)
|
||||
{
|
||||
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);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (infinite > 0)
|
||||
{
|
||||
Log.Warning("Mission contains {Count} infinite lights", infinite);
|
||||
|
|
Loading…
Reference in New Issue