Why not use a combination of both?
I use this (with an additional guassian blur) in addition to my modified LTBL2, which is multiplicative, for a pseudo bloom shader.
The result of both gets then blended additively onto the finished, multiplicative blended image.
Overall, this makes the lighting way nicer.
I'm sure you could pick out the relevant parts...
uniform sampler2D currTex;
uniform sampler2D lightCompTex;
uniform sampler2D specCompTex;
void main()
{
vec2 coord = gl_TexCoord[0].xy;
vec4 frColor = texture2D(currTex, coord);
vec4 lColor = texture2D(lightCompTex, coord);
lColor += texture2D(specCompTex, coord);
float lstrength = clamp(dot(lColor.rgb, vec3(0.2126, 0.7152, 0.0722)), 0.0, 1.0);
float brightness = dot(frColor.rgb, vec3(0.2126, 0.7152, 0.0722));
if (lstrength > 0.1)
{
gl_FragColor = vec4(lColor.rgb, lstrength * brightness);
}
}