mirror of
https://github.com/godotengine/godot-vscode-plugin.git
synced 2025-12-31 13:48:24 +03:00
42 lines
1.1 KiB
Plaintext
42 lines
1.1 KiB
Plaintext
[gd_resource type="ShaderMaterial" load_steps=2 format=2]
|
|
|
|
[sub_resource type="Shader" id=63]
|
|
code = "// HSV to RBG from https://www.rapidtables.com/convert/color/hsv-to-rgb.html
|
|
// Rotation matrix from https://en.wikipedia.org/wiki/Rotation_matrix
|
|
|
|
shader_type canvas_item;
|
|
|
|
const float PI = 3.1415926535;
|
|
|
|
uniform float strength: hint_range(0., 1.) = 0.5;
|
|
uniform float speed: hint_range(0., 10.) = 0.5;
|
|
uniform float angle: hint_range(0., 360.) = 0.;
|
|
|
|
void fragment() {
|
|
float hue = UV.x * cos(radians(angle)) - UV.y * sin(radians(angle));
|
|
hue = fract(hue + fract(TIME * speed));
|
|
float x = 1. - abs(mod(hue / (1./ 6.), 2.) - 1.);
|
|
vec3 rainbow;
|
|
if(hue < 1./6.){
|
|
rainbow = vec3(1., x, 0.);
|
|
} else if (hue < 1./3.) {
|
|
rainbow = vec3(x, 1., 0);
|
|
} else if (hue < 0.5) {
|
|
rainbow = vec3(0, 1., x);
|
|
} else if (hue < 2./3.) {
|
|
rainbow = vec3(0., x, 1.);
|
|
} else if (hue < 5./6.) {
|
|
rainbow = vec3(x, 0., 1.);
|
|
} else {
|
|
rainbow = vec3(1., 0., x);
|
|
}
|
|
vec4 color = texture(TEXTURE, UV);
|
|
COLOR = mix(color, vec4(rainbow, color.a), strength);
|
|
}"
|
|
|
|
[resource]
|
|
shader = SubResource( 63 )
|
|
shader_param/strength = 0.5
|
|
shader_param/speed = 0.5
|
|
shader_param/angle = 0.0
|