Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- varying vec4 diffuse, ambientGlobal, ambient;
- varying vec3 normal, lightDir, halfVector;
- varying float dist;
- uniform sampler2D tex0;
- vec4 calcPointLight(){
- float d = length(lightDir);
- float att = 1.0 / ( gl_LightSource[0].constantAttenuation + (gl_LightSource[0].linearAttenuation*d) + (gl_LightSource[0].quadraticAttenuation*d*d) );
- vec4 color = (gl_FrontLightModelProduct.sceneColor * gl_FrontMaterial.ambient) +(gl_LightSource[0].ambient * gl_FrontMaterial.ambient * att);
- vec3 N = normalize(normal);
- vec3 L = normalize(lightDir);
- float lambertTerm = dot(N,L);
- if(lambertTerm > 0.0)
- {
- color += gl_LightSource[0].diffuse * gl_FrontMaterial.diffuse * lambertTerm * att;
- vec3 E = normalize(halfVector);
- vec3 R = reflect(-L, N);
- float specular = pow( max(dot(R, E), 0.0), gl_FrontMaterial.shininess );
- color += gl_LightSource[0].specular * gl_FrontMaterial.specular * specular * att;
- }
- return color;
- }
- void main()
- {
- vec4 phong = calcPointLight();
- gl_FragData[0] = phong * texture2D(tex0, gl_TexCoord[0].st); // ha ki kellene kapcsolni a texturat, a motor lecsereli azt egy ures feher texturara.
- gl_FragData[1] = vec4(normal,1.0); //ezt nem igy kellene
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement