#version 330 core #preinclude "light.glsl" out vec4 FragColor; in vec3 in_frag_color; in vec3 in_frag_pos; in vec3 in_normal; uniform vec3 view_pos; void main() { vec3 ambient_light = calc_ambient_light(); vec3 light_direction = normalize(light.position - in_frag_pos); vec3 norm = normalize(in_normal); vec3 diffuse_light = calc_diffuse_light(light_direction, norm); vec3 specular_light = calc_specular_light(light_direction, norm, view_pos, in_frag_pos); FragColor = vec4((ambient_light + diffuse_light + specular_light) * in_frag_color, 1.0); }