Fix sun making everything transperent
and sun has beautiful gradient
This commit is contained in:
28
shaders/sun.fs
Normal file
28
shaders/sun.fs
Normal file
@@ -0,0 +1,28 @@
|
||||
#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);
|
||||
}
|
||||
}
|
Reference in New Issue
Block a user