summaryrefslogtreecommitdiff
path: root/shader.frag
diff options
context:
space:
mode:
Diffstat (limited to 'shader.frag')
-rw-r--r--shader.frag40
1 files changed, 15 insertions, 25 deletions
diff --git a/shader.frag b/shader.frag
index 0494364..4741236 100644
--- a/shader.frag
+++ b/shader.frag
@@ -5,36 +5,26 @@ precision mediump float;
uniform vec2 resolution;
uniform float time;
-uniform float m;
-//uniform sampler2D backbuffer;
-uniform sampler2D i0;
-uniform sampler2D i1;
-uniform sampler2D i2;
-uniform sampler2D i3;
-uniform float i0ratio;
-uniform float i1ratio;
-uniform float i2ratio;
-uniform float i3ratio;
-
-uniform float p0;
-uniform float p1;
-uniform float p3;
-uniform float p4;
+uniform sampler2D images[4];
+uniform float ratios[4];
+uniform float params[32];
out vec4 fragColor;
+
float random (in float x) {
- return fract(sin(x)*43758.5453123)-0.5;
+ return fract(sin(x)*43758.5453123)-0.5;
}
-void main (void) {
+vec4 image(int i) {
vec2 st = gl_FragCoord.xy/resolution.xy;
- vec4 img1 = texture2D(i0,st*vec2(i0ratio,1.));
- vec4 img2 = texture2D(i1,st*vec2(i1ratio,1.));
- vec4 img3 = texture2D(i2,st*vec2(i2ratio,1.));
- vec4 img4 = texture2D(i3,st*vec2(i3ratio,1.));
- img1 = mix(img1,img2,sin(time));
- img2 = mix(img3,img4,cos(time));
- fragColor = mix(img1,img2,p0);
- //gl_FragColor = i1;
+ st.x *= ratios[i];
+ st.x += (1-ratios[i])*0.5;
+ return texture2D(images[i],st);
+}
+
+void main (void) {
+ vec4 img1 = mix(image(0),image(1),sin(time));
+ vec4 img2 = mix(image(2),image(3),cos(time));
+ fragColor = mix(img1,img2,params[1]);
}