2016年12月29日 星期四

Week 16 Sean's note 60408027E

3D 掃瞄器(掃點):


ToF Camera for Kinect (2014)


Models - Mobile 3d Laser Scanner (2013)


Scan David 數位米開朗基羅計畫 (1999)

Johnny Lee Wii Remote 電子白板(韓國電腦科學家)


binvox




似乎是作業系統的更新所以無法開啟,加裝 XQuartz
仍然無法開啟... 尋找替代方案

Processing:

int xRes,yRes,zRes, bunny[][][], inside[][][], millis0;
float angleX=0, angleY=0, myScale=1;
void setup(){
  size(600,400,P3D);
  byte b[]=loadBytes("bunny40.mira");//("bunny80.mira");
  xRes=((b[8] &0x00FF)<<8)+(b[9] &0x00FF);
  yRes=((b[10]&0x00FF)<<8)+(b[11]&0x00FF);
  zRes=((b[12]&0x00FF)<<8)+(b[13]&0x00FF);
  myScale=0.3*width/float(xRes);
  bunny=new int[xRes][yRes][zRes]; inside=new int[xRes][yRes][zRes];
  for(int i=0;i<xRes*yRes*zRes;i++){
    int x=int(i/(yRes*zRes)), y=int(i/zRes)%yRes, z=i%zRes;
    bunny[x][y][z]=b[256+(xRes+yRes+zRes)*8+i];
  }
  for(int i=1;i<xRes-1;i++)
    for(int j=1;j<yRes-1;j++)
      for(int k=1;k<zRes-1;k++)
        if(bunny[i-1][j][k]!=0 && bunny[i+1][j][k]!=0 && bunny[i][j-1][k]!=0 && bunny[i][j+1][k]!=0
            && bunny[i][j][k-1]!=0 && bunny[i][j][k+1]!=0) inside[i][j][k]=1;
}
void draw(){
  println("fps: "+frameRate);
  background(128); noStroke();
  pointLight(128,255,128, width, height, height);
  directionalLight(30,30,30, 0,0,-1);
  directionalLight(40,40,40, 0,1,-1); 
  translate(width/2,height/2,0);
  rotateX(-angleY);
  rotateY(angleX);
  rotateX(PI/2);
  scale(myScale);
  translate(-xRes,-yRes,-zRes);
  for(int i=0;i<xRes;i++){
    for(int j=0;j<yRes;j++){
      for(int k=0;k<zRes;k++){
        if(bunny[i][j][k]!=0 && inside[i][j][k]==0){
          pushMatrix();
          translate(2*i,2*j,2*k);
          box(2);
          popMatrix();
        }
      }
    }
  }
}
void mouseDragged(){
  angleX+=0.01*(mouseX-pmouseX);
  angleY+=0.01*(mouseY-pmouseY);
}



PShape rocket;

void setup(){
  size(400,400,P3D);
  rocket = loadShape("rocket.obj");
}

void draw(){
  background(255);
  translate(width/2, height/2);
  shape(rocket, 0, 0);
  println(frameCount);
}


PShape rocket;

void setup(){
  size(400,400,P3D);
  rocket = loadShape("rocket.obj");
}

void draw(){
  background(111,111,111);
  lights();
  translate(width/2, height/2);
  rotateZ(PI);
  rotateY(radians(mouseY));
  rotateX(radians(mouseX));  
  shape(rocket, 0, 0);
  println(frameCount);
}


PShape rocket;

void setup(){
  size(400,400,P3D);
  rocket = loadShape("bunny.obj");
}

void draw(){
  background(255,255,0);
  lights();
  translate(width/2, height/2);
  rotateZ(PI);
  rotateY(radians(mouseY));
  rotateX(radians(mouseX));
  scale(100);
  shape(rocket, 0, 0);
  println(frameCount);
}

兔子小尾巴

沒有留言:

張貼留言