Daily Creative Coding

元「30 min. Processing」。毎日、Creative Codingします。

カメラから取得した画像を立方体のテクスチャにする

f:id:aa_debdeb:20151231230220j:plain
/**
* Texture by Camera
*
* @author aa_debdeb
* @date 2016/01/06
*/

import processing.video.*;

Capture camera;

void setup(){
  size(500, 500, P3D);
  camera = new Capture(this, 480, 360);
  camera.start();
}

void draw(){
  
  background(255);
  translate(width / 2, height / 2);
  rotateX(frameCount * 0.03);
  rotateY(frameCount * 0.05);
  beginShape(QUADS);
  texture(camera);
  
  vertex(-100, -100, 100, 0, 0);
  vertex(-100, 100, 100, 0, 200);
  vertex(100, 100, 100, 200, 200);
  vertex(100, -100, 100, 200, 0);

  vertex(100, 100, 100, 0, 0);
  vertex(100, 100, -100, 0, 200);
  vertex(100, -100, -100, 200, 200);
  vertex(100, -100, 100, 200, 0);

  vertex(100, 100, -100, 0, 0);
  vertex(-100, 100, -100, 0, 200);
  vertex(-100, -100, -100, 200, 200);
  vertex(100, -100, -100, 200, 0);

  vertex(-100, 100, -100, 0, 0);
  vertex(-100, 100, 100, 0, 200);
  vertex(-100, -100, 100, 200, 200);
  vertex(-100, -100, -100, 200, 0);

  vertex(-100, -100, -100, 0, 0);
  vertex(100, -100, -100, 0, 200);
  vertex(100, -100, 100, 200, 200);
  vertex(-100, -100, 100, 200, 0);

  vertex(-100, 100, -100, 0, 0);
  vertex(100, 100, -100, 0, 200);
  vertex(100, 100, 100, 200, 200);
  vertex(-100, 100, 100, 200, 0);

  endShape();
}

void captureEvent(Capture camera){
  camera.read();
}