Ah... the many mysteries of [LightAttenuation]
From the X-Box Morrowind.ini:
CODE
;This section governs light attenuation. This is calcuated as follows:
; atten = 1 / ( ConstantValue + Linear * Distance + Quadratic * Distance^2 )
;
;If you want to use Constant attenuation:
; 1. set UseConstant=1
; 2. set ConstantValue to some non-zero number
;
;If you want to use Linear attenuation:
; 1. set UseLinear=1
; 2. Choose your method of calculating the value:
; a. LinearMethod=0 : uses LinearValue
; b. LinearMethod=1 : uses LinearValue / LightRadius
; c. LinearMethod=2 : uses LinearValue / LightRadius^2
; b is most commonly used.
;
;If you want to use Quadraticattenuation:
; 1. set UseQuadratic=1
; 2. Choose your method of calculating the value:
; a. QuadraticMethod=0 : uses QuadraticValue
; b. QuadraticMethod=1 : uses QuadraticValue / LightRadius
; c. QuadraticMethod=2 : uses QuadraticValue / LightRadius^2
; c is most commonly used.
;
;You can use Linear attenuation inside and Quadratic attenuation outside
;by setting.
; OutQuadInLin=1
;If this is present & set to 1, it overrides the UseLinear and UseQuadratic settings.
;
;If you want to alter the radius used in quadratic or linear attenuation,
;you can set the followind. The radius will be multiplied by these numbers,
;which default to 1.0, before the attenuation is calculated using method 1 or 2.
; QuadraticRadiusMult=1.0
; LinearRadiusMult=1.0
Now, I think this is just a tad off... I think the exact equation is as so:
CODE
atten = 1 / ( UseConstant(ConstantValue) + UseLinear((LinearValue/(LightRadius*LinearRadiusMult))*Distance) + UseQuadratic(QuadraticValue/(LightRadius*QuadraticRadiusMult)^2)*Distance^2 )
Meaning, of course, that the reason for no changing of FPS is because theres no real changing of the numbers crunched. The "UseQuadratic" value is multiplied into the equation, either a 1 or a 0, and so turning it off doesn't stop the other numbers from being evaluated, then set to 0.
Just a theory tho.
I've tweaked my light settings until I was completely annoyed that I couldn't make them any better. My settings are as follows:
CODE
UseConstant=1
ConstantValue=0.382
UseLinear=1
LinearMethod=1
LinearValue=1
LinearRadiusMult=1
UseQuadratic=1
QuadraticMethod=2
QuadraticValue=2.619
QuadraticRadiusMult=1
That's right... I use all three attenuation types at a time and it works great... it took alot of juggling to get the numbers perfect, but the basic gist of this tweak is fourfold:
1) Light at the center of the lightsource does not get infinitely bright, it caps out at phi^2 times the base light color values.
2) Light at the midpoint of the attenuation curve exactly matches up with Bethesda's default settings, so lights don't look too weird
3) Light around the periphery of the light radius fades to black alot faster, leading to more defined shadows.
4) In theory, an infinite egress into brightness at 0 distance is realistic, however your computer monitor cannot display infinite values, leading to "greening" around light sources when using very bright lights and quadratic lighting (the colors get so bright they oversaturate). This tweak attempts to split the difference between what your computer can display, what would be realistic, and bethesda's intended defaults.
The catch?
Lights that are set inside an actor or object look even funnier than they did before, and they looked pretty damned funny before.
This isn't usually a problem tho, especially if one is using Better Bodies and Better Heads (the meshes are less "jagged" and take to quadratic lighting better)
Okay, back to the original question... a run through:
CODE
UseConstant - Using Constant attenuation alone will make every light's radius infinite. If the light is in your cell, it is lighting you.
ConstantValue - Multiplier for attenuation. Lower means brighter
UseLinear - Using Linear attenuation alone is the default. Lights brighten their immediate vicinity and do not fade out very much as you go outward from them.
LinearMethod - Don't Touch. One is supposed to be able to change the way light radius factors in, but changing this value breaks the lighting and everything is basically unlit, save for ambient lighting.
LinearValue - The base multiplier for attenuation. Again, lower means brighter
LinearRadiusMult - According to the equations, Radius governs the effect radius has on how bright the lights are. In this case, higher is brighter (Note: According to the calculations and experimentation I have done, I have found this variable is totally unneeded. Simply changing the Value in small amounts will have the exact same effect)
UseQuadratic - Quadratic attenuation alone will lead to bright, pointed light sources and dark, inky shadows.
QuadraticMethod - Don't Touch. See above.
QuadraticValue - Same idea as above.
QuadraticRadius - Ditto. (Note: Also ditto)
Hope that was helpful