28
Resources/Textures/Shaders/White/melt.swsl
Normal file
28
Resources/Textures/Shaders/White/melt.swsl
Normal file
@@ -0,0 +1,28 @@
|
||||
highp float rand(highp float co) {
|
||||
return fract(sin(co * (91.3458)) * 47453.5453);
|
||||
}
|
||||
|
||||
void fragment()
|
||||
{
|
||||
highp vec2 uv = UV;
|
||||
highp vec2 texel = 1.0 * SCREEN_PIXEL_SIZE.xy;
|
||||
|
||||
highp vec4 img = texture(TEXTURE, uv);
|
||||
|
||||
// modulate offset
|
||||
highp float step_y = texel.y * (rand(uv.x) * 80) * (sin(sin(TIME * 0.5)) * 2.0 + 1.3);
|
||||
// offset without modulation
|
||||
//highp float step_y = texel.y*(rand(uv.x)*100.0);
|
||||
// shake offset and modulate it
|
||||
step_y += rand(uv.x * uv.y * TIME) * 0.025 * sin(TIME);
|
||||
// more noisy spikes
|
||||
step_y = mix(step_y, step_y * rand(uv.x * TIME) * 0.5, sin(TIME));
|
||||
|
||||
if (dot(img, vec4(0.299, 0.587, 0.114, 0.0)) > 1.2*(sin(TIME) * 0.325 + 0.50)) {
|
||||
uv.y += step_y;
|
||||
} else {
|
||||
uv.y -= step_y;
|
||||
}
|
||||
|
||||
COLOR = texture(TEXTURE, uv);
|
||||
}
|
||||
Reference in New Issue
Block a user