33 lines
710 B
GLSL

#version 300 es
precision mediump float;
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.0;
offset.y -= fragTexCoord.y * 2.0;
float radius = length(offset);
if(radius < sun_radius){
finalColor = vec4(color, 1.0);
}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.0);
}
}