Vertex picking
[opengl.git] / gradientfrag.glsl
1 #version 330
2 in vec4 color;
3 in vec3 normal;
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 * color;
23 }