2013年8月26日 星期一

[GLSL] 入門-3 把貼圖的材質當成陣列使用

uniform sampler2D tex;
uniform vec2 resolution;
uniform float chsize;

void main(void){
 vec2 uv = gl_FragCoord.xy / resolution.xy;
 vec2 center = gl_FragCoord.xy / resolution.xy * 2.0-1.0;
 
 float k = (gl_FragCoord.x+(gl_FragCoord.y*800.0))/(800.0*600.0);
 vec3 col=texture2D(tex,vec2(mod(mod(uv.x*chsize,1.0)*chsize,1.0) ,
               mod(mod(uv.y*chsize,1.0)*chsize,1.0) 
          )).rgb;
 float f=col.r;
  gl_FragColor = vec4(f,f,f,1.0);
}

這個練習到底要表達什麼,我也還說不清楚.. 總之大約就是想透過材質輸入的方式(把音訊訊號轉成灰階陣列圖),
來取代shader不能讀取外部陣列的困擾..然而目前這方式也還不算完全可行就是.. download