I'm still working on perfecting my engines lighting system(s), and I have one more issue to fix before moving on to implement an optional deferred shading system.
To render the scene with GLSL lighting, I render an initial Z-pass, and then render the scene for each visible light, executing the lighting shader for each light. The problem though, is that when more than one light is visible at a time, some walls and objects receive too much light, even if the lights and objects are nowhere near each other.
What I need to know, is if there is any way to restrict the lighting stay within a certain radius. I already use lighting attenuation, which seems to attenuate lighting on floors and ceilings fine, but walls and other objects that receive more direct light still get too bright.
I tried scissor testing, but that didn't work out too well, and when scissor rectangles overlapped, the problem was still visible.