Changes between Version 3 and Version 4 of misc/processing/setup_ar


Ignore:
Timestamp:
08/07/14 18:04:19 (11 years ago)
Author:
Takashi Obina
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • misc/processing/setup_ar

    v3 v4  
    4141   * ファイルの背景を透過GIFに変換して、ローカルフォルダに保存
    4242      * 現在の例では Documents\Processing\sketch_140807c\data に保存した。
    43  * プログラムを作成(2つのマーカーに対し、)
     43 * プログラムを作成(2つのマーカーに対し、別の画像を表示)
    4444{{{
    4545import processing.video.*;
     
    9696}
    9797}}}
    98  *
     98画像によって位置の微調整が必要。
    9999
     100== 自分で読み込んだ画像を表示:3次元の場合 ==
     1013次元ファイル形式のなかで、Wavefront Obj 形式を表示するために、saitoobjloaderを使う
     102 * https://code.google.com/p/saitoobjloader/
     103 * Download ページから OBJLoader.zip version 0.23b をダウンロード
     104 * NyARToolkitと同様に、Document\Processing\libraries\OBJLoader に展開
     105 * Processingを再起動し、OBJLoaderが Library のところに表示されていることを確認
     106 * sketchを名前をつけて保存しなおす。今回は sketch_140807d とした
     107 * Documents\Processing\libraries\OBJLoader\examples\OBJLoader_Multi_Models_MATTD\data にある cassini.obj, cassini.mtl をスケッチのdataフォルダへコピーする
    100108
     109{{{
     110import processing.video.*;
     111import jp.nyatla.nyar4psg.*;
     112import saito.objloader.*;
    101113
     114Capture cam;
     115MultiMarker nya;
     116PImage img_jin, img_poni;
     117OBJModel  model;
     118
     119void setup() {
     120  size(640, 480, P3D);
     121  String[] cameras = Capture.list();
     122
     123  cam = new Capture(this, cameras[0]); // select cam 0
     124
     125  nya = new MultiMarker(this,width,height,"camera_para.dat",NyAR4PsgConfig.CONFIG_PSG);
     126  nya.addARMarker("patt.hiro", 80);
     127  nya.addARMarker("patt.kanji", 80); 
     128 
     129  img_jin  = loadImage("data/jin01t.gif");
     130  img_poni = loadImage("data/poni01t.gif");
     131 
     132  model = new OBJModel(this);
     133  model.load("data/cassini.obj");
     134  model.scale(3.0);
     135  model.translateToCenter();
     136 
     137  cam.start(); // start camera 
     138
     139}
     140
     141void draw() {
     142  if (cam.available() != true) {
     143      return;
     144  }
     145 
     146  background(0);        // clear (black) backgound
     147  cam.read();           // read camera image
     148  nya.detect(cam);  // detect marker
     149 
     150  nya.drawBackground(cam); // draw background camera image
     151  if (nya.isExistMarker(0)) {
     152    nya.beginTransform(0);
     153    model.draw();
     154    nya.endTransform();
     155  }
     156  if (nya.isExistMarker(1)) {
     157    nya.beginTransform(1);
     158    scale(0.25);
     159    rotateX(radians(-90));
     160    translate(-200,-400,0);
     161    image(img_poni, 0, 0);     // show Poni
     162    nya.endTransform(); 
     163  }
     164 
     165}
     166}}}
     167