I have finally managed to get on screen multiple lights with a deferred renderer, but the result is somehow disappointing. In particular I have severe banding problem
Other than having clear banding for a single light, the seam of overlapping light volumes are in some case disturbing.
Currently my bounding sphere scale is calculated solving the quadratic equation with a min light intensity of 0.01 and using the attenuation terms of each light source (in the screen above, every light have an equivalent volume).
The attenuation in the shader is simply
1 / (const + linear * dist + quadr * dist * dist) . The position is reconstructed from a 32bit depth buffer and the lighting is in view space.
The light passes are blended together with simply
glEnable(GL_BLEND); glBlendEquation(GL_FUNC_ADD); glBlendFunc(GL_ONE,GL_ONE);
Is there a way to fix this issue easily?