mirror of
https://gitlab.com/MaddoScientisto/cirnogodot.git
synced 2026-06-01 10:35:34 +00:00
31 lines
920 B
Text
31 lines
920 B
Text
group_uniforms uv_wind;
|
|
uniform float uv_wind_speed: hint_range(0., 50.) = 2.;
|
|
uniform float uv_wind_amount: hint_range(0, 50) = 20;
|
|
uniform float uv_wind_vertical_ratio: hint_range(0.0, 1.0) = 1.;
|
|
uniform vec2 uv_radial_bend_center = vec2(0.5, 0.9);
|
|
uniform bool uv_wind_animate_manual;
|
|
uniform float uv_wind_manual_anim: hint_range(-1, 1) = 1;
|
|
uniform float uv_wind_radial_bend: hint_range(0.0, 5.0) = 0.1;
|
|
group_uniforms;
|
|
|
|
vec2 uv_wind(vec2 uv)
|
|
{
|
|
float wind_offset;
|
|
if (uv_wind_animate_manual)
|
|
{
|
|
wind_offset = uv_wind_manual_anim;
|
|
}
|
|
else
|
|
{
|
|
wind_offset = sin(TIME * uv_wind_speed * 10.);
|
|
}
|
|
|
|
uv.x = mix(uv.x, uv.x + uv_wind_amount * 0.01 * wind_offset,
|
|
abs(uv_wind_vertical_ratio - uv.y));
|
|
|
|
vec2 delta = uv - uv_radial_bend_center;
|
|
float delta2 = dot(delta, delta);
|
|
float delta_offset = delta2 * wind_offset;
|
|
uv = uv + vec2(delta.y, - delta.x) * delta_offset * uv_wind_radial_bend;
|
|
return uv;
|
|
}
|