#version 430 core float AMBIENT = 0.1; uniform vec3 colorStart; uniform vec3 colorEnd; uniform vec3 lightPos; in vec3 vecNormal; in vec3 worldPos; out vec4 outColor; void main() { vec3 lightDir = normalize(lightPos - worldPos); vec3 normal = normalize(vecNormal); float diffuse = max(0, dot(normal, lightDir)); vec3 gradientColor = mix(colorStart, colorEnd, diffuse); outColor = vec4(gradientColor, 1.0); }