0.00
60.0 fps
Radial Shine
a rotatable radial shine.
Godot version: godotshaders.com/shader/radial-shine-ver-1-0/
Log in to post a comment.
#version 300 es
precision highp float;
uniform float iTime;
uniform vec2 iResolution;
uniform float shine_num; // value=8, min=0, max=50, step=1
uniform float rotation_speed; // value=3, min=0, max=50, step=0.01
uniform float light_magnitude; // value=2, min=0, max=50, step=0.01
uniform float de_magnitude; // value=0, min=0, max=1, step=0.01
uniform float isCutAndFilter; // value=1., min=0, max=1, step=1. (false, true)
uniform float filter_distence; // value=1, min=0, max=1, step=0.01
uniform float filter_magnitude; // value=1, min=0, max=1, step=0.01
uniform float filter_minv; // value=0.75, min=0, max=1, step=0.01
uniform float cut_outer_radius; // value=0.6, min=0, max=3, step=0.01
uniform float cut_inner_radius; // value=0.1, min=0, max=1, step=0.01
uniform vec3 color;// value=1,1,1
out vec4 fragColor;
void main() {
vec2 UV = gl_FragCoord.xy/iResolution.xy;
UV.x *= iResolution.x/iResolution.y;
UV = (UV - 0.5)*2.;
UV.x += (iResolution.x - iResolution.x*(iResolution.x/iResolution.y))/iResolution.x;
float ang = atan(UV.x, UV.y);
float r = distance(UV, vec2(0,0));
float demag = exp(pow(r, 5.))*de_magnitude;
fragColor.rgb = color*vec3(abs(sin(ang*shine_num*0.5 + iTime*rotation_speed))) - demag;
fragColor.a = ((1.0 - filter_distence*0.5) - r*filter_magnitude)*light_magnitude - demag;
if (((r > cut_outer_radius) || (r < cut_inner_radius) || (fragColor.r < filter_minv) && (fragColor.g < filter_minv) && (fragColor.b < filter_minv)) && bool(isCutAndFilter)) {
fragColor.rgba = vec4(0.0);
}
}