first commit
This commit is contained in:
43
GodotRetro/Screen Shaders/VHSPause.shader
Executable file
43
GodotRetro/Screen Shaders/VHSPause.shader
Executable file
@@ -0,0 +1,43 @@
|
||||
//SHADER ORIGINALY CREADED BY "caaaaaaarter" FROM SHADERTOY
|
||||
//MODIFIED AND PORTED TO GODOT BY AHOPNESS (@ahopness)
|
||||
//LICENSE : CC0
|
||||
//COMATIBLE WITH : GLES2, GLES3
|
||||
//SHADERTOY LINK : https://www.shadertoy.com/view/4lB3Dc
|
||||
|
||||
shader_type canvas_item;
|
||||
|
||||
uniform float shake_amount_x : hint_range(1, 500) = 250.0;
|
||||
uniform float shake_amount_y : hint_range(1, 500) = 40.0;
|
||||
uniform float white_hlines : hint_range(0, 50) = 50;
|
||||
uniform float white_vlines : hint_range(0,80) = 80;
|
||||
|
||||
float rand(vec2 co){
|
||||
return fract(sin(dot(co.xy ,vec2(12.9898,78.233))) * 43758.5453);
|
||||
}
|
||||
|
||||
void fragment(){
|
||||
vec4 texColor = vec4(0);
|
||||
// get position to sample
|
||||
vec2 samplePosition = FRAGCOORD.xy / (1.0 / SCREEN_PIXEL_SIZE).xy;
|
||||
|
||||
float whiteNoise = 9999.0;
|
||||
|
||||
// Jitter each line left and right
|
||||
samplePosition.x = samplePosition.x+(rand(vec2(TIME,UV.y))-0.5)/shake_amount_x;
|
||||
// Jitter the whole picture up and down
|
||||
samplePosition.y = samplePosition.y+(rand(vec2(TIME))-0.5)/shake_amount_y;
|
||||
// Slightly add color noise to each line
|
||||
texColor = texColor + (vec4(-0.5)+vec4(rand(vec2(UV.y,TIME)),rand(vec2(UV.y,TIME+1.0)),rand(vec2(UV.y,TIME+2.0)),0))*0.1;
|
||||
|
||||
// Either sample the texture, or just make the pixel white (to get the staticy-bit at the bottom)
|
||||
whiteNoise = rand(vec2(floor(samplePosition.y*white_vlines),floor(samplePosition.x*white_hlines))+vec2(TIME,0));
|
||||
if (whiteNoise > 11.5-30.0*samplePosition.y || whiteNoise < 1.5-5.0*samplePosition.y) {
|
||||
// Sample the texture.
|
||||
//samplePosition.y = 1.0-samplePosition.y; //Fix for upside-down texture
|
||||
texColor = texColor + texture(SCREEN_TEXTURE,samplePosition);
|
||||
}else{
|
||||
// Use white. (I'm adding here so the color noise still applies)
|
||||
texColor = vec4(1);
|
||||
}
|
||||
COLOR = texColor;
|
||||
}
|
||||
Reference in New Issue
Block a user