31
Resources/Textures/Shaders/White/anime.swsl
Normal file
31
Resources/Textures/Shaders/White/anime.swsl
Normal file
@@ -0,0 +1,31 @@
|
||||
const highp float shake_power = 0.03;
|
||||
const highp float shake_block_size = 30.5;
|
||||
const highp float fade = 0.01;
|
||||
const highp vec2 direction_r = vec2( 1.0, 0.0 );
|
||||
const highp vec2 direction_g = vec2( 0.4, 1.0 );
|
||||
const highp vec2 direction_b = vec2( -0.7, -0.3 );
|
||||
uniform sampler2D SCREEN_TEXTURE;
|
||||
|
||||
highp float random (highp float seed)
|
||||
{
|
||||
return fract ( 543.2543 * sin( dot( vec2( seed, seed ), vec2( 3525.46, -54.3415 ) ) ) );
|
||||
}
|
||||
|
||||
void fragment()
|
||||
{
|
||||
highp vec2 fixed_uv = UV;
|
||||
fixed_uv.x += (
|
||||
random(
|
||||
( trunc( UV.y * shake_block_size ) / shake_block_size )
|
||||
+ TIME
|
||||
) - 0.5
|
||||
) * shake_power * ( fade * 12.0 );
|
||||
|
||||
COLOR = vec4(
|
||||
textureLod( SCREEN_TEXTURE, fixed_uv + normalize( direction_r ) * fade, 0.0 ).r
|
||||
, textureLod( SCREEN_TEXTURE, fixed_uv + normalize( direction_g ) * fade, 0.0 ).g
|
||||
, textureLod( SCREEN_TEXTURE, fixed_uv + normalize( direction_b ) * fade, 0.0 ).b
|
||||
, 0.0
|
||||
) * ( 1.0 - fade );
|
||||
COLOR.a = 1.0;
|
||||
}
|
||||
Reference in New Issue
Block a user