Guest User

Untitled

a guest
Dec 12th, 2018
73
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.15 KB | None | 0 0
  1. #version 330
  2.  
  3. in vec2 pass_textureCoords;
  4. in vec3 surfaceNormal;
  5. in vec3 toLightVector;
  6. in vec3 toCameraVector;
  7. in vec3 visibility;
  8.  
  9. out vec4 out_Color;
  10.  
  11. uniform sampler2D textureSampler;
  12. uniform vec3 lightColor;
  13. uniform float shineDamper;
  14. uniform float reflectivity;
  15. uniform vec3 skyColor;
  16.  
  17. void main(void) {
  18.  
  19. vec3 unitNormal = normalize(surfaceNormal);
  20. vec3 unitLightVector = normalize(toLightVector);
  21.  
  22. float nDotl = dot(unitNormal, unitLightVector);
  23. float brightness = max(nDotl, 0.2);
  24. vec3 diffuse = brightness * lightColor;
  25.  
  26. vec3 unitVectorCameraVector = normalize(toCameraVector);
  27. vec3 lightDirection = -unitLightVector;
  28. vec3 reflectedLightDirection = reflect(lightDirection, unitNormal);
  29.  
  30. float specularFactor = dot(reflectedLightDirection, unitVectorCameraVector);
  31. specularFactor = max(specularFactor, 0.0);
  32. float dampedFactor = pow(specularFactor, shineDamper);
  33. vec3 finalSpecular = dampedFactor * reflectivity *lightColor;
  34.  
  35. out_Color = vec4(diffuse, 1.0) * texture(textureSampler, pass_textureCoords) + vec4(finalSpecular, 1.0);
  36. out_Color = vec4(mix(vec4(skyColor, 1.0), vec4(out_Color).xyz, visibility), 1);
  37. }
Add Comment
Please, Sign In to add comment