mirror of
https://gitlab.com/MaddoScientisto/cirnogodot.git
synced 2026-07-06 12:41:16 +00:00
Added VFEZ
This commit is contained in:
parent
273efaef03
commit
6d572503cb
59 changed files with 5796 additions and 0 deletions
96
VFEZ/Shaders/Effects/vfez_utils.gdshaderinc
Normal file
96
VFEZ/Shaders/Effects/vfez_utils.gdshaderinc
Normal file
|
|
@ -0,0 +1,96 @@
|
|||
// helper functions ------------------------------------------
|
||||
vec2 transform_uv(vec2 uv, vec2 scale, vec2 offset, bool fract_result)
|
||||
{
|
||||
uv = uv * scale + offset;
|
||||
if (fract_result)
|
||||
uv = fract(uv);
|
||||
return uv;
|
||||
}
|
||||
|
||||
vec2 uv_distortion(
|
||||
vec2 uv,
|
||||
sampler2D distortion_texture,
|
||||
vec2 distortion_uv,
|
||||
float distortion_amount,
|
||||
vec2 distortion_speed,
|
||||
bool fract_result)
|
||||
{
|
||||
distortion_uv += mod(TIME * distortion_speed, vec2(1.));
|
||||
if (fract_result)
|
||||
{
|
||||
distortion_uv = fract(distortion_uv);
|
||||
}
|
||||
|
||||
float distortAmount =
|
||||
(texture(distortion_texture, distortion_uv).r - 0.5) * 0.2 * distortion_amount;
|
||||
uv += vec2(1.) * distortAmount;
|
||||
return uv;
|
||||
}
|
||||
|
||||
vec2 uv_polar(vec2 uv, vec2 center)
|
||||
{
|
||||
vec2 dir = uv - center;
|
||||
float radius = length(dir) * 2.;
|
||||
float angle = atan(dir.y, dir.x) / (2. * PI);
|
||||
vec2 polarUV = vec2(angle, radius);
|
||||
//baseUV = mod(vec2(radius, angle), 1.0);
|
||||
return polarUV;
|
||||
}
|
||||
|
||||
vec2 rotate_vec2(vec2 vector, float angle)
|
||||
{
|
||||
float cosAngle = cos(angle);
|
||||
float sinAngle = sin(angle);
|
||||
vector = mat2(vec2(cosAngle, -sinAngle), vec2(sinAngle, cosAngle)) * vector;
|
||||
return vector;
|
||||
}
|
||||
|
||||
vec2 rotate_uvs(vec2 uv, float rotation, vec2 scale, vec2 offset)
|
||||
{
|
||||
vec2 center = vec2(0.5 * scale.x + offset.x, 0.5 * scale.y + offset.y);
|
||||
uv -= center;
|
||||
uv = rotate_vec2(uv, rotation);
|
||||
uv += center;
|
||||
return uv;
|
||||
}
|
||||
|
||||
vec4 sample_texture_with_scroll(sampler2D tex, vec2 uv, vec2 scroll_speed, float time)
|
||||
{
|
||||
uv.x += mod(time * scroll_speed.x, 1);
|
||||
uv.y += mod(time * scroll_speed.y, 1);
|
||||
if (scroll_speed != vec2(0.))
|
||||
uv = fract(uv);
|
||||
return texture(tex, uv);
|
||||
}
|
||||
|
||||
float rand(vec2 seed, float offset) {
|
||||
return mod(fract(sin(dot(seed, vec2(12.9898, 78.233))) * 43758.5453) + offset, 1.0);
|
||||
}
|
||||
|
||||
float rand_uncapped(vec2 seed, float offset) {
|
||||
return fract(sin(dot(seed, vec2(12.9898, 78.233))) * 43758.5453) + offset;
|
||||
}
|
||||
|
||||
float rand2(vec2 seed, float offset, float time) {
|
||||
return mod(
|
||||
fract(
|
||||
sin(
|
||||
dot(seed * floor(50. + mod(time, 1.0) * 12.), vec2(127.1, 311.7))
|
||||
) * 43758.5453123
|
||||
) + offset, 1.0);
|
||||
}
|
||||
|
||||
float remap_float(float inValue, float inMin, float inMax, float outMin, float outMax){
|
||||
return outMin + (inValue - inMin) * (outMax - outMin) / (inMax - inMin);
|
||||
}
|
||||
|
||||
float ease_out_quint(float x) {
|
||||
return 1. - pow(1. - x, 5.);
|
||||
}
|
||||
|
||||
float get_color_luminance(vec4 color)
|
||||
{
|
||||
float luminance = 0.3 * color.r + 0.59 * color.g + 0.11 * color.b;
|
||||
luminance *= color.a;
|
||||
return luminance;
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue