Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #version 330 core
- uniform vec3 viewPos;
- uniform vec3 lightPos;
- uniform float ambientStrength;
- in vec3 fragPos;
- in vec3 interpolatedNormal;
- out vec4 fragColor;
- const float lightStrength = 0.1;
- const float specularStrength = 0.5;
- const float gamma = 2.2;
- const vec3 lightColor = vec3(1, 1, 1);
- const vec3 objectColor = vec3(137.0/255.0, 183.0/255.0, 255.0/255.0);
- // Code adpated from learnopengl.com
- void main() {
- vec3 ambient = ambientStrength * lightColor;
- vec3 norm = normalize(interpolatedNormal);
- vec3 lightDir = normalize(lightPos - fragPos);
- float diff = max(dot(norm, lightDir), 0.0);
- vec3 diffuse = diff * lightColor;
- vec3 viewDir = normalize(viewPos - fragPos);
- vec3 reflectDir = reflect(-lightDir, norm);
- float spec = pow(max(dot(viewDir, reflectDir), 0.0), 32);
- vec3 specular = specularStrength * spec * lightColor;
- vec3 color = (ambient + diffuse + specular) * objectColor;
- vec3 corrected = pow(color, vec3(1.0 / gamma));
- fragColor = vec4(corrected, 1.0);
- }
Advertisement
Add Comment
Please, Sign In to add comment