Advertisement
Guest User

Untitled

a guest
Aug 21st, 2014
150
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.16 KB | None | 0 0
  1. #version 330
  2.  
  3. out vec4 outputColor;
  4.  
  5. in vec3 Position_worldspace;
  6. in vec3 Normal_cameraspace;
  7. in vec3 EyeDirection_cameraspace;
  8. in vec3 LightDirection_cameraspace;
  9.  
  10. uniform vec3 lightPosition;
  11.  
  12.  
  13. void main()
  14. {
  15. vec3 LightColor = vec3(1,1,1);
  16. float LightPower = 50.0f;
  17.  
  18. vec3 MaterialDiffuseColor = vec3(0.3,0.8,0.3);
  19. vec3 MaterialAmbientColor = vec3(0.1,0.1,0.1) * MaterialDiffuseColor;
  20. vec3 MaterialSpecularColor = vec3(0.3,0.3,0.3);
  21.  
  22. float distance = length(lightPosition - Position_worldspace);
  23.  
  24. vec3 n = normalize(Normal_cameraspace);
  25.  
  26. vec3 l = normalize(LightDirection_cameraspace);
  27.  
  28. float cosTheta = clamp(dot(n,l),0,1);
  29.  
  30. vec3 E = normalize(EyeDirection_cameraspace);
  31.  
  32. vec3 R = reflect(-l,n);
  33.  
  34. float cosAlpha = clamp(dot(E,R),0,1);
  35.  
  36. vec3 color =
  37. // Ambient : simulates indirect lighting
  38. MaterialAmbientColor +
  39. // Diffuse : "color" of the object
  40. MaterialDiffuseColor * LightColor * LightPower * cosTheta / (distance*distance) +
  41. // Specular : reflective highlight, like a mirror
  42. MaterialSpecularColor * LightColor * LightPower * pow(cosAlpha,5) / (distance*distance);
  43.  
  44. outputColor = vec4(color, 1.0);
  45. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement