21 lines
636 B
Plaintext
21 lines
636 B
Plaintext
shader_type canvas_item;
|
|
render_mode blend_add;
|
|
|
|
uniform float ray_count : hint_range(5.0, 40.0) = 20.0;
|
|
uniform float speed : hint_range(0.1, 2.0) = 0.4;
|
|
uniform float intensity : hint_range(0.0, 2.0) = 0.5;
|
|
uniform vec3 ray_color : source_color = vec3(0.5, 0.8, 1.0);
|
|
|
|
void fragment() {
|
|
vec2 uv = UV;
|
|
|
|
float vertical_fade = pow(1.0 - uv.y, 2.0);
|
|
|
|
float ray_pattern = fract(uv.x * ray_count + sin(TIME * speed + uv.y * 5.0) * 0.3);
|
|
float ray = smoothstep(0.0, 0.15, ray_pattern) * smoothstep(0.4, 0.15, ray_pattern);
|
|
|
|
float brightness = ray * vertical_fade * intensity;
|
|
|
|
COLOR = vec4(ray_color * brightness, brightness * 0.6);
|
|
}
|