|
@@ -174,16 +174,21 @@ void main(){
|
|
|
|
|
|
#ifndef VERTEX_LIGHTING
|
|
|
float spotFallOff = 1.0;
|
|
|
- if(g_LightDirection.w != 0.0){
|
|
|
- vec3 L = normalize(lightVec.xyz);
|
|
|
- vec3 spotdir = normalize(g_LightDirection.xyz);
|
|
|
- float curAngleCos = dot(-L, spotdir);
|
|
|
- float innerAngleCos = floor(g_LightDirection.w) * 0.001;
|
|
|
- float outerAngleCos = fract(g_LightDirection.w);
|
|
|
- float innerMinusOuter = innerAngleCos - outerAngleCos;
|
|
|
|
|
|
- spotFallOff = (curAngleCos - outerAngleCos) / innerMinusOuter;
|
|
|
+ #if __VERSION__ >= 110
|
|
|
+ // allow use of control flow
|
|
|
+ if(g_LightDirection.w != 0.0){
|
|
|
+ #endif
|
|
|
|
|
|
+ vec3 L = normalize(lightVec.xyz);
|
|
|
+ vec3 spotdir = normalize(g_LightDirection.xyz);
|
|
|
+ float curAngleCos = dot(-L, spotdir);
|
|
|
+ float innerAngleCos = floor(g_LightDirection.w) * 0.001;
|
|
|
+ float outerAngleCos = fract(g_LightDirection.w);
|
|
|
+ float innerMinusOuter = innerAngleCos - outerAngleCos;
|
|
|
+ spotFallOff = (curAngleCos - outerAngleCos) / innerMinusOuter;
|
|
|
+
|
|
|
+ #if __VERSION__ >= 110
|
|
|
if(spotFallOff <= 0.0){
|
|
|
gl_FragColor.rgb = AmbientSum * diffuseColor.rgb;
|
|
|
gl_FragColor.a = alpha;
|
|
@@ -191,7 +196,10 @@ void main(){
|
|
|
}else{
|
|
|
spotFallOff = clamp(spotFallOff, 0.0, 1.0);
|
|
|
}
|
|
|
- }
|
|
|
+ }
|
|
|
+ #else
|
|
|
+ spotFallOff = clamp(spotFallOff, step(g_LightDirection.w, 0.001), 1.0);
|
|
|
+ #endif
|
|
|
#endif
|
|
|
|
|
|
// ***********************
|