#version 330 core out vec4 FragColor; in vec3 FragPos; in vec3 Normal; uniform vec3 objectColor; uniform vec3 lightColor; uniform vec3 lightDir; /* Normalised direction vector for the light source. */ void main() { /* Ambient lighting (cheap, constant base light) */ float ambientStrength = 0.3; vec3 ambient = ambientStrength * lightColor; /* Diffuse lighting (depends on angle of the surface) */ vec3 norm = normalize(Normal); float diff = max(dot(norm, normalize(-lightDir)), 0.0); vec3 diffuse = diff * lightColor; vec3 result = (ambient + diffuse) * objectColor; FragColor = vec4(result, 1.0); }