#version 330 in vec2 fragTexCoord; // texture coordinate in vec3 fragNormal; // normal direction uniform sampler2D texture0; uniform vec4 colDiffuse; out vec4 finalColor; uniform vec3 lightDirection; // direction of light uniform vec4 ambientLight; void main() { vec4 texelColor = texture(texture0, fragTexCoord); float light_dot = clamp(dot(normalize(fragNormal), normalize(lightDirection)), 0.0, 1.0); vec4 light_col = vec4(vec3(light_dot), 1.0); finalColor = texelColor * colDiffuse * light_col; finalColor += texelColor * colDiffuse * ambientLight; finalColor = pow(finalColor, vec4(vec3(0.8), 1.0)); }