ズンドコ
precision mediump float; #define PI 3.141592653 #define PHI PI*2.0
Fragment Shader Variables
varying vec2 p ; // axis -1.0 <= x, y <= 1.0 uniform float aspect ; // screen aspect (x/y) uniform float param1, param2,param3,param4 ; //slider value(0<=param<=1) uniform vec4 color1,color2,color3,color4 ; //color param uniform sampler2D texture; //2D sample texture uniform vec2 cmouse ; //current mouse pos (-1
Fragment Shader Code
const int WD = 10 ; const int HD = 20 ; int srand ; int setCh(ivec2 p,int s) { int ch=0 ; int zc = 0 ; int kf = 0 ; int pofs = p.x + p.y*WD ; for(int i=0; i
=s)?6: ((kf==0)?r: ((i==kf+1)?4:((i==kf+2)?5:6))) ; kf = (kf!=0)?kf:((zc>=4 && r==2)?i:0) ; zc = (r==0)?zc+1:0 ; if(i==pofs) break ; } return ch ; } void main() { srand = time ; vec2 np = vec2((p.x+1.0)/2.,1.0-(p.y+1.0)/2.) ; float px = np.x * float(WD) ; float py = np.y * float(HD) ; vec2 op = vec2( fract(px),fract(py)) ; ivec2 pa = ivec2(floor(px),floor(py) ) ; int ch = setCh(pa,count/10) ; float ox = mod(float(ch),2.) * 0.5 ; float oy = float(ch/2) * 0.25 ; vec2 tp = vec2(op.x/2.+ox,op.y/4.+oy) ; vec4 col ; if(ch/2==0 ) col = vec4(1.0,0,1.0,1.0) ; else if(ch/2==1 ) col = vec4(0,1.0,0,1.0) ; else col = vec4(1.0,0,0,1.0) ; gl_FragColor = texture2D(texture,tp)* col ; }
APPLY