Changes between Version 6 and Version 7 of misc/processing/setup_ar


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

--

Legend:

Unmodified
Added
Removed
Modified
  • misc/processing/setup_ar

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