\r
uniform float m_Shininess;\r
+uniform vec4 g_LightDirection;\r
\r
varying vec4 AmbientSum;\r
varying vec4 DiffuseSum;\r
varying vec3 vViewDir;\r
varying vec4 vLightDir;\r
varying vec4 vnLightDir;\r
-varying vec4 lightVec;\r
-varying vec4 spotVec;\r
+varying vec3 lightVec;\r
\r
\r
#ifdef DIFFUSEMAP\r
#endif\r
\r
float spotFallOff = 1.0;\r
- if(spotVec.w!=0.0){\r
+ if(g_LightDirection.w!=0.0){\r
vec3 L=normalize(lightVec.xyz);\r
- vec3 spotdir = normalize(spotVec.xyz);\r
+ vec3 spotdir = normalize(g_LightDirection.xyz);\r
float curAngleCos = dot(-L, spotdir); \r
- float innerAngleCos = spotVec.w;\r
- float outerAngleCos = lightVec.w;\r
+ float innerAngleCos = floor(g_LightDirection.w) * 0.001;\r
+ float outerAngleCos = fract(g_LightDirection.w);\r
float innerMinusOuter = innerAngleCos - outerAngleCos;\r
spotFallOff = clamp((curAngleCos - outerAngleCos) / innerMinusOuter, 0.0, 1.0);\r
if(spotFallOff<=0.0){\r
\r
uniform vec4 g_LightColor;\r
uniform vec4 g_LightPosition;\r
-uniform vec4 g_LightDirection;\r
uniform vec4 g_AmbientLightColor;\r
\r
uniform float m_Shininess;\r
varying vec4 vLightDir;\r
varying vec4 vnLightDir;\r
\r
-varying vec4 lightVec;\r
-varying vec4 spotVec;\r
+varying vec3 lightVec;\r
\r
varying vec4 AmbientSum;\r
varying vec4 DiffuseSum;\r
#endif\r
\r
//computing spot direction in view space and unpacking spotlight cos\r
- spotVec=(g_ViewMatrix *vec4(g_LightDirection.xyz,0.0) );\r
- spotVec.w=floor(g_LightDirection.w)*0.001;\r
- lightVec.w = fract(g_LightDirection.w);\r
+ // spotVec=(g_ViewMatrix *vec4(g_LightDirection.xyz,0.0) );\r
+ // spotVec.w=floor(g_LightDirection.w)*0.001;\r
+ // lightVec.w = fract(g_LightDirection.w);\r
\r
AmbientSum = vec4(0.2, 0.2, 0.2, 1.0) * g_AmbientLightColor; // Default: ambient color is dark gray\r
DiffuseSum = lightColor;\r