- vec3 lightDir = normalize(fragPos - lightPos);
- vec3 diffuse = max(0, dot(-normal, lightDir)) * material.diffuse;
+ vec3 normal = texture(material.normalMap, texCoord).rgb;
+ normal = normalize(normal * 2 - 1);
+ if (!material.hasNormalMap)
+ normal = defNormal;
+
+ vec3 lightDir = normalize(lightPos - fragPos);
+
+ vec4 diffTex = texture(material.diffuseMap, texCoord);
+ if (!material.hasTexture)
+ diffTex = material.diffuse;
+
+ diffTex = mix(diffTex, reflection(worldNormal), material.reflectivity);