Anisotropic filtering
[opengl.git] / normalfrag.glsl
1 #version 330
2 in vec3 normal;
3 in vec3 normalEye;
4 in vec3 fragPos;
5 uniform vec3 lightPos;
6 uniform vec3 viewPos;
7 uniform vec4 lightColor;
8 out vec4 FragColor;
9
10 void main() {
11         float ambient = 0.1;
12         float specularStrength = 0.5;
13         vec3 lightDir = normalize(fragPos - lightPos);
14         float diffuse = max(0, dot(-normal, lightDir));
15
16         vec3 viewDir = normalize(fragPos - viewPos);
17         vec3 reflectDir = reflect(-lightDir, normal);
18         float specular = pow(max(0, dot(viewDir, reflectDir)), 128);
19
20         vec4 lighting = (ambient + diffuse + specular) * lightColor;
21
22         FragColor = lighting * vec4((normal + 1) / 2, 1);
23 }
24