30 lines
735 B
GLSL
30 lines
735 B
GLSL
|
|
uniform mat4 u_mat4_ads;
|
|
|
|
varying vec3 vEyeNormal;
|
|
varying vec3 vPosition3;
|
|
|
|
void main()
|
|
{
|
|
vec4 amb = u_mat4_ads[0];//vec4 (0.0, 0.0, 0.0, 1.0);
|
|
vec4 diff = u_mat4_ads[1];//vec4 (1.0, 1.0, 1.0, 1.0);
|
|
vec4 spcl = u_mat4_ads[2];//vec4 (1.0, 1.0, 1.0, 1.0);
|
|
vec3 lpos = u_mat4_ads[3].xyz;//vec3(-10.0, 10.0, 10.0);
|
|
|
|
vec3 vLightDir = normalize(lpos - vPosition3);
|
|
|
|
float tdiff = max(0.0, dot(vEyeNormal, vLightDir));
|
|
|
|
vec4 v_v4_clr = tdiff * diff;
|
|
|
|
v_v4_clr += amb;
|
|
vec3 vReflection = normalize(reflect(-vLightDir, vEyeNormal));
|
|
float spec = max(0.0, dot(vEyeNormal, vReflection));
|
|
|
|
float fSpec = pow(spec, 128.0);
|
|
v_v4_clr.rgb += vec3(fSpec, fSpec, fSpec);
|
|
|
|
v_v4_clr.rgba *= u_mat4_ads[3].w;
|
|
|
|
gl_FragColor = v_v4_clr;
|
|
} |