注
このページの記述は Processing 2 の話なので、バージョン 3 では不要。例えば Processing 3.3 と NyARToolkit 5.0.5 で AR の練習 などに分かりやすく書いてある。
自分で読み込んだ画像を表示:3次元の場合
3次元ファイル形式のなかで、Wavefront Obj 形式を表示するために、saitoobjloaderを使う
- Download ページから OBJLoader.zip version 0.23b をダウンロード
- NyARToolkitと同様に、Document\Processing\libraries\OBJLoader に展開
- Processingを再起動し、OBJLoaderが Library のところに表示されていることを確認
- sketchを名前をつけて保存しなおす。今回は sketch_140807d とした
- Documents\Processing\libraries\OBJLoader\examples\OBJLoader_Multi_Models_MATTD\data にある cassini.obj, cassini.mtl をスケッチのdataフォルダへコピーして、以下のコードを入力。
import processing.video.*;
import jp.nyatla.nyar4psg.*;
import saito.objloader.*;
Capture cam;
MultiMarker nya;
PImage img_jin, img_poni;
OBJModel model;
void setup() {
size(640, 480, P3D);
// setup camera
String[] cameras = Capture.list();
cam = new Capture(this, cameras[0]); // select cam 0
// load AR marker information
nya = new MultiMarker(this,width,height,"camera_para.dat",NyAR4PsgConfig.CONFIG_PSG);
nya.addARMarker("patt.hiro", 80);
nya.addARMarker("patt.kanji", 80);
// load 2D image file
img_jin = loadImage("data/jin01t.gif");
img_poni = loadImage("data/poni01t.gif");
// load 3D object model
model = new OBJModel(this);
model.load("data/cassini.obj");
model.scale(3.0);
model.translateToCenter();
cam.start(); // start camera
}
void draw() {
if (cam.available() != true) {
return;
}
background(0); // clear (black) backgound
cam.read(); // read camera image
nya.detect(cam); // detect marker
nya.drawBackground(cam); // draw background camera image
if (nya.isExistMarker(0)) {
nya.beginTransform(0);
model.draw(); // show 3D Obj(Cassini)
nya.endTransform();
}
if (nya.isExistMarker(1)) {
nya.beginTransform(1);
scale(0.25);
rotateX(radians(-90));
translate(-200,-400,0);
image(img_poni, 0, 0); // show Poni
nya.endTransform();
}
}
Last modified
7 years ago
Last modified on 09/03/18 09:48:21
Note:
See TracWiki
for help on using the wiki.




