#version 330 core in vec3 Normal; in vec3 FragPos; out vec4 FragColor; void main() { vec3 objectColor = vec3(1.0, 1.0, 1.0); vec3 result; // Ambient lighting vec3 ambientLightColor = vec3(1.0, 1.0, 1.0); float ambientStrength = 0.0; vec3 ambient = ambientStrength * ambientLightColor; // Directional lighting vec3 dirColorHi = vec3(.39, .40, .21) * 2.0; vec3 dirColorLo = vec3(.45, .22, .33) * 2.0; vec3 lightPos = vec3(10.0, 7.0, -8.0); vec3 normal = normalize(Normal); vec3 lightDir = normalize(lightPos - FragPos); float diff = dot(normal, lightDir) * .5 + .5; vec3 diffuse = mix(dirColorLo, dirColorHi, diff); result = (ambient + diffuse) * objectColor; FragColor = vec4(result, 1.0); }