21 // These are all in tangent space
26 uniform vec4 lightColor;
28 uniform Material material;
35 if (material.hasNormalMap) {
36 normal = texture(material.normalMap, texCoord).rgb;
37 normal = normalize(normal * 2 - 1);
42 vec3 lightDir = normalize(lightPos - fragPos);
45 if (material.hasTexture)
46 diffTex = texture(material.diffuseMap, texCoord);
49 vec4 diffuse = vec4(max(0, dot(lightDir, normal)) * material.diffuse, 1) * diffTex;
51 vec3 viewDir = normalize(viewPos - fragPos);
52 vec3 reflectDir = reflect(-lightDir, normal);
56 if (material.hasSpecularMap)
57 specTex = texture(material.specularMap, texCoord);
61 vec4 specular = vec4(pow(max(0, dot(viewDir, reflectDir)), material.shininess) * material.specular, 1) * specTex;
63 vec4 lighting = (vec4(material.ambient, 1) + diffuse + specular) * lightColor;