所以在pd程式中,透過2進制去產生要丟進shader的pattern數值,然後才在shader中解譯回2維點陣圖案。並且最後才把圖形繪製在一個旋轉的cube上。
uniform vec2 iResolution; uniform float pattern; float bit(float n, vec2 p) { p.x=(floor(p.x*5.0)); p.y=(floor(p.y*5.0)); float k = (p.x + (5.0*p.y)); if (int(mod(n/(exp2(k)), 2.0)) == 1){ return 1.0; } else{ return 0.0; } } void main() { vec2 uv = gl_FragCoord.xy/iResolution.xy; uv.y=1.0-uv.y; vec2 uv2=mod(uv*5.0,1.0); vec3 col2; if((uv2.x<0 .95="" uv2.x="">0.05) && (uv2.y<0 .95="" uv2.y="">0.05) ){ col2=vec3(1.0,1.0,1.0); }else{ col2=vec3(0.3,0.3,0.3); } vec3 col = vec3(bit(pattern, uv)*floor(mod(gl_FragCoord.x/2.0,2.0)) * floor(mod(gl_FragCoord.y/2.0,2.0))); gl_FragColor = vec4(col*col2,1.0); } 0>0>
Download
沒有留言:
張貼留言