#version 330 core in vec3 normal; in vec3 fragmentPosition; vec4 ambientLight = vec4(0.1, 0.1, 0.1, 1.0); vec4 surfaceColor = vec4(0.7, 0.7, 0.9, 1.0); vec3 lightPosition = vec3(3.0, 3.0, 3.0); vec4 lightColor = vec4(1.0, 1.0, 1.0, 1.0); float emissionStrength = 0.1; void main() { vec3 norm = normalize(normal); vec3 lightDir = normalize(lightPosition - fragmentPosition); float diff = max(dot(norm, lightDir), 0.0); gl_FragColor = surfaceColor * emissionStrength + ambientLight * surfaceColor + diff * lightColor * surfaceColor; }