#version 330 in vec2 fragTexCoord; in vec4 fragColor; out vec4 finalColor; uniform vec3 color; vec2 offset = vec2(1.0, 1.0); float start_transparency = 0.40f; float sun_radius = 0.6f; float sun_end = 1.0f; void main() { offset.x -= fragTexCoord.x * 2; offset.y -= fragTexCoord.y * 2; float radius = length(offset); if(radius < sun_radius){ finalColor = vec4(color, 1.0f); }else if(radius < sun_end){ float gradient = radius; gradient -= sun_radius; gradient = gradient / 0.4f * start_transparency; finalColor = vec4(color, start_transparency - gradient); }else{ finalColor = vec4(color, 0.0f); } }