nuclear@0: varying vec3 vpos, ldir, norm; nuclear@0: nuclear@0: void main() nuclear@0: { nuclear@0: vec3 n = normalize(norm); nuclear@0: vec3 l = normalize(ldir); nuclear@0: vec3 v = -normalize(vpos); nuclear@0: vec3 h = normalize(v + l); nuclear@0: nuclear@0: const vec3 kd = vec3(0.42, 0.6, 0.43); nuclear@0: nuclear@0: float diff = abs(dot(n, l)); nuclear@0: float spec = pow(abs(dot(n, h)), 60.0); nuclear@0: nuclear@0: vec3 dcol = kd * diff; nuclear@0: vec3 scol = vec3(0.8, 0.8, 0.8) * spec; nuclear@0: nuclear@0: gl_FragColor = vec4(dcol + scol, 1.0); nuclear@0: }