#version 330 core in vec3 o_normal; in vec3 o_frag_pos; out vec4 fragColour; uniform vec3 light_pos; void main() { vec3 ambient = vec3(0.2, 0.2, 0.2); vec3 light_colour = vec3(1.0, 1.0, 1.0); vec3 object_colour = vec3(0.8, 0.6, 0.2); vec3 norm = normalize(o_normal); vec3 light_dir = normalize(light_pos - o_frag_pos); float diff = max(dot(norm, light_dir), 0.0); vec3 diffuse = diff * light_colour; vec3 result = (ambient + diffuse) * object_colour; fragColour = vec4(result, 1.0); }