So the game does normal mapping on map geometry by storing the direction of the incoming light.
One of the issues with storing a single light vector is that you have to work with averages when dealing with overlapping lights.
This creates some strange behavior in cases where there's a sudden change in light direction.
It is especially visible for the specular highlights, sometimes the specular might even make the shadow appear brighter than the lit area.
Some examples would be small radius bright lights on some maps for things like wall lights, or a spotlight shining through floorgrates.
There's also potential issues with shadow penumbra where the one dominant lights source fades into another, causing a low-contrast fringe to appear around the light.
I was wondering about ways to avoid or fix this.
- Have the ability to mark certain light sources to only contribute to light intensity but not direction. This would need to be supported by the compiler.
- Use lightstyles on fail-cases to do a second pass over the world geometry, this would be more expensive and would need compiler support.
- Use dynamic lights for certain lights, this would be more expensive.
- Blur / Lowpass the lighting directions to hide obvious artifacts.
This is not an issue with the engine, it's a limitation of using light maps to do normal mapping.
Here's an example of the issue in Unity:
http://forum.unity3d.com/threads/direct ... ct.134335/