nuclear@16: varying vec3 vpos, norm, ldir; nuclear@16: nuclear@16: void main() nuclear@16: { nuclear@16: vec3 v = -normalize(vpos); nuclear@16: vec3 n = normalize(norm); nuclear@16: vec3 l = normalize(ldir); nuclear@16: vec3 h = normalize(v + l); nuclear@16: nuclear@16: float ndotl = max(dot(n, l), 0.0); nuclear@16: float ndoth = max(dot(n, h), 0.0); nuclear@16: nuclear@16: vec3 diff = gl_FrontMaterial.diffuse.rgb * gl_LightSource[0].diffuse.rgb * ndotl; nuclear@16: vec3 spec = gl_FrontMaterial.specular.rgb * gl_LightSource[0].specular.rgb * nuclear@16: pow(ndoth, gl_FrontMaterial.shininess); nuclear@16: nuclear@16: gl_FragColor.rgb = diff + spec; nuclear@16: gl_FragColor.a = 1.0; nuclear@16: }