#version 330 core out vec4 color; in vec3 position_pass; in vec3 camera_position_pass; in vec3 normal_pass; in vec2 uv_pass; float min_brightness = 0.05; vec3 sun_position = vec3(1000.0, 1000.0, 1000.0); float shine_dampener = 10; float reflectivity = 5; uniform sampler2D sampler; void main() { color = texture(sampler, uv_pass); vec3 to_sun_vector = normalize(sun_position - position_pass); float intensity = clamp(dot(to_sun_vector, normal_pass), 0.25, 1.0); color.xyz *= intensity; //vec3 to_camera_vector = normalize(camera_position_pass - position_pass); //vec3 reflection = reflect(-to_sun_vector, normal_pass); //float specular_intensity = max(dot(to_camera_vector, reflection), 0.0); //specular_intensity = pow(specular_intensity, shine_dampener); //specular_intensity *= reflectivity; //if (dot(normal_pass, to_camera_vector) >= 0.3) //color.xyz += vec3(1.0, 1.0, 1.0) * specular_intensity; }