« ADOBE MAX その後 | MAIN | [as]Tween on Spline Curve »

Frocessing on FLARToolKit

えー、AdobeMAXでちらっとSaqooshaさんのFLARToolkitにものっかります的な話をしたんですが以下がそれです。Saqooshaさんが「FLARToolkitスタートガイド」を用意してくださっていたので、Frocessing版をつくってみました。つくったと言ってもほとんど変えてないですけど。カメラんとことか、計算結果の行列アテぐらいです。

とりあえずビデオはこんな感じ。(というか vimeo 使ってみたかっただけというか…)

ダウンロード

まとめたものです。マーカーはSaqooshaさんのブログのやつと同じです。 http://nutsu.com/spark/FLAR_F5_start.zip

使い方

とりあえず、遊んでみるには「SimpleCubeF5.as」の以下のところを適当に書いてみてください。FrocessingはY軸が反対なのに注意です。

//始まるまえに一度呼ばれます
override protected function setup3d(fg:F5Graphics3D):void 
{
    //なにかしら初期化
    fg.rectMode( FC.CENTER );
}

//enterframeで呼ばれます
override protected function draw3d( fg:F5Graphics3D ):void
{
    //なにかしら描画:以下はビデオのもの
    fg.noFill();
    fg.stroke( 255, 0, 0 );
    fg.strokeWeight( 2 );
    fg.rect( 0, 0, 80, 80 );
  
    //axis
    fg.rect( 0, 0, 40, 40 );
    fg.stroke( 0xff0000 ); 
    fg.line3d( 0, 0, 0, 50, 0, 0 ); //X
    fg.stroke( 0xff0000ff ); 
    fg.line3d( 0, 0, 0, 0, 50, 0 ); //Y
    fg.stroke( 0xff00ff00 );
    fg.line3d( 0, 0, 0, 0, 0, 50 ); //Z
  
    fg.translate( 0, 0, 20 );
    fg.fill( 255, 0, 0, 0.5 );
    fg.stroke(255);
    fg.strokeWeight( 0 );
    fg.box(40);
}

その他

Frocessing版といっても、先ほど書いたようにカメラんとことかしかいじってないです。なので、他の3D系ライブラリにもすんなりいけるんじゃないかと。

まずは、F5ARApp.as(元は PV3DARApp.as)の65行目の認識結果取得のところ。

this._detector.getTransformMatrix(this._resultMat);

ここで「_resultMat」に計算結果の変換行列が入ってくるので、あてるライブラリに適用します(ライブラリによって座標系が違うのでその辺いい感じに)

次に、F5ARApp.as の _initCamera() でプロジェクションの設定をする感じです。 正直、僕のはなんとなくやってるんですが…多分あやしい。本家の「org.libspark.flartoolkit.pv3d.FLARCamera3D」の結果を適用するくだりを参考にするとよいと思います。

それではぁ。

COMMENT+

いままで、ここでコメントしたことがないときは、コメントを表示する前にこのブログのオーナーの承認が必要になることがあります。承認されるまではコメントは表示されません。そのときはしばらく待ってください。

TRACKBACK

URL : http://nutsu.com/cgi/mt/mt-tb.cgi/103