#version 330

in vec2 fragTexCoord;
in vec4 fragColor;
out vec4 finalColor;

uniform vec3 color;
uniform float sun_radius;
uniform float start_transperency;
vec2 offset = vec2(1.0f, 1.0f);
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 / (sun_end - sun_radius) * start_transperency;
        finalColor = vec4(color, start_transperency - gradient);
    }else{
        finalColor = vec4(color, 0.0f);
    }
}