summaryrefslogtreecommitdiff
path: root/src/phong.frag
blob: 801a9ce082e43cee5894bab9f7b5d24f94b7a72d (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
#version 120
varying vec3 light_ss;
varying vec3 eye_ss;

varying vec3 pos_es;
varying vec3 normal_es;

const vec3 base_color = vec3(1.0, 0.7, 0.0);

/* Specular exponent.
 */
uniform float s;

void main(void)
{
	vec3 l = normalize(light_ss);
	vec3 v = normalize(eye_ss);
	vec3 h = normalize(l + v);
	vec3 n = vec3(0,0,1);
	vec3 diff = base_color * dot(n, l);
	float spec = pow(dot(n, h), s);

	vec4 light = step(0.0, dot(n, l)) * vec4(diff + vec3(spec), 1.0);

	gl_FragData[0] = light;
	gl_FragData[1] = vec4(pos_es, 1);
	gl_FragData[2] = vec4(normal_es, 1);
}