15 uniform vec3 lightPos;
17 uniform vec4 lightColor;
19 uniform Material material;
20 uniform sampler2D tex;
25 vec3 lightDir = normalize(fragPos - lightPos);
26 vec3 diffuse = max(0, dot(-normal, lightDir)) * material.diffuse;
28 vec3 viewDir = normalize(fragPos - viewPos);
29 vec3 reflectDir = reflect(-lightDir, normal);
30 vec3 specular = pow(max(0, dot(viewDir, reflectDir)), material.shininess) * material.specular;
32 vec4 lighting = vec4(material.ambient + diffuse + specular, 1) * lightColor;
34 if (material.hasTexture)
35 FragColor = lighting * texture(tex, texCoord);