#version 400 in vec3 vNormal; in vec3 vWorldPos; uniform vec4 u_color; uniform vec3 u_lightDir; out vec4 fragColor; void main() { vec3 n = normalize(vNormal); vec3 l = normalize(u_lightDir); float diff = max(dot(n, l), 0.0); float ambient = 0.55; float light = clamp(ambient + diff * 0.45, 0.0, 1.0); fragColor = vec4(u_color.rgb * light, u_color.a); }