import processing.video.*; import processing.opengl.*; int l,w,h,idx,a; float t; boolean p=true,q=false; boolean cheatScreen=false; PImage[] leaf; /* final String seqName="stella.png"; final String setName="itten/"; final int HowManyLeaf=1; */ final String seqName="sex.jpg"; final String setName="sex/"; final int HowManyLeaf=2; final String shoot="shoot/"; final int pixCam=10; final int squareSide=30; final int screenPix=squareSide*pixCam; final int fr=24; Capture cam; void setup() { size(4*screenPix, 3*screenPix, OPENGL); cam = new Capture(this, 4*pixCam, 3*pixCam, fr); noStroke(); leaf= new PImage[HowManyLeaf]; l=squareSide; w=width/2; h=height/2; frameRate(fr); for (int i=0; i< HowManyLeaf; i++) { println("loading "+setName+i+"-"+seqName); leaf[i] =loadImage(setName+i+"-"+seqName); leaf[i].mask(loadImage(setName+i+"-M"+seqName)); } textureMode(NORMALIZED); } public void captureEvent(Capture c) { c.read(); } void draw() { idx=0; background(255, 255, 255); //translate(0, 0); for(int j=0; j> 16) & 0xff; int g = (pixelColor >> 8) & 0xff; int b = pixelColor & 0xff; if (p) { t=(float)(r+g+b)/(float)(255*3); }else{ t=(0.3*r+0.59*g+011.*b)/1000.0; } if (q) {t=abs(1.0-t);} drawSlab(l,i,j,t,int(t*250)); idx++; } } if (cheatScreen) { image(cam, 0, 0); } //saveFrame("pixel-#####.png"); } void drawSlab(int l,int x, int y ,float value,int alpha){ fill(255, 255, 255, alpha); pushMatrix(); translate(x,y); pushMatrix(); scale (int(3*l*(1-value)),int(3*l*(1-value)),1); rotate (value*2.0*PI); int leafSel= ( (int)(value *100) ) % HowManyLeaf ; beginShape(QUADS); texture(leaf[leafSel ]); vertex (0,0,0,0); vertex (0,1,0,1); vertex (1,1,1,1); vertex (1,0,1,0); endShape(); popMatrix(); popMatrix(); } public void keyPressed() { switch (key) { case 'c': cheatScreen = !cheatScreen; break; case 'g': saveFrame(setName+shoot+"######.png"); println ("saved "+l); break; case 's': cam.settings();break; case 'p': p=!p;break; case 'i': q=!q;break; case 'a': l++; println(l); break; case 'z': if (l > 2) {l--;println(l);};break; } }