/* // find out what cam you have by making this code in a sketch import processing.video.*; Capture cam; void setup() { size(1280,720); println( Capture.list() ); } */ import processing.video.*; Capture cam; int stageW = 1280; int stageH = 720; int camW = 1280; int camH = 720; float cubeSpacing = 10.0; float cubeSize = 9.0; PImage _t; void settings() { size(stageW, stageH, P3D); } void setup() { _t = loadImage("imageName.png"); cam = new Capture(this, camW, camH, "HD Pro Webcam C920", 30); cam.start(); } void draw() { background(0); translate(stageW/2, stageH/2); rotateY(frameCount*0.01); for (int x = 0; x < camW; x += cubeSpacing) { for (int y = 0; y < camH; y += cubeSpacing) { color pixelColor = cam.get(x, y); float b = map(brightness(pixelColor), 0, 255, 0, 15); pushMatrix(); translate(x - camW/2, y - camH/2); strokeWeight(0); noStroke(); noFill(); tint(pixelColor); buildCube(cubeSize/2, cubeSize/2, (b*cubeSpacing)/2 ); popMatrix(); } } noTint(); } void buildCube(float _w, float _h, float _d) { beginShape(QUADS); textureMode(NORMAL); texture(_t); // FRONT vertex( -(_w), -(_h), (_d), 0, 0); vertex( (_w), -(_h), (_d), 1, 0); vertex( (_w), (_h), (_d), 1, 1); vertex( -(_w), (_h), (_d), 0, 1); // BACK vertex( (_w), -(_h), -(_d), 0, 0); vertex( -(_w), -(_h), -(_d), 1, 0); vertex( -(_w), (_h), -(_d), 1, 1); vertex( (_w), (_h), -(_d), 0, 1); // TOP vertex( -(_w), -(_h), -(_d), 0, 0); vertex( (_w), -(_h), -(_d), 1, 0); vertex( (_w), -(_h), (_d), 1, 1); vertex( -(_w), -(_h), (_d), 0, 1); // BOTTOM vertex( -(_w), (_h), (_d), 0, 0); vertex( (_w), (_h), (_d), 1, 0); vertex( (_w), (_h), -(_d), 1, 1); vertex( -(_w), (_h), -(_d), 0, 1); // LEFT vertex( -(_w), -(_h), -(_d), 0, 0); vertex( -(_w), -(_h), (_d), 1, 0); vertex( -(_w), (_h), (_d), 1, 1); vertex( -(_w), (_h), -(_d), 0, 1); // RIGHT vertex( (_w), -(_h), (_d), 0, 0); vertex( (_w), -(_h), -(_d), 1, 0); vertex( (_w), (_h), -(_d), 1, 1); vertex( (_w), (_h), (_d), 0, 1); endShape(CLOSE); } void captureEvent(Capture c) { c.read(); }