30 lines
678 B
GLSL
30 lines
678 B
GLSL
#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);
|
|
}
|
|
}
|