第3回まででFLARToolKitの基本的なところはおさえたと思います。そこで最終回の今回は,
前回までを読んでもらっている方なら感覚的にわかってもらえてると思うのですが,
今回使うデータは,
FLAR ワームホール
1つ目は,
筆者が制作した
図1 Papervision3D augmented reality wormhole
Papervision3D augmented reality wormhole from Plug-in Media on Vimeo.
以下のgihyo4.
これは,
浮遊するPlaneのテクスチャのUV座標値は,
リスト1 gihyo4.
var n:int = this._plane.geometry.faces.length;
for (var i:int = 0; i < n; i++) { // 1
var t:Triangle3D = this._plane.geometry.faces[i]; // 2
var d:Triangle3D = this._dummy.geometry.faces[i]; // 3
t.uv0.u = (d.v0.vertex3DInstance.x + 160 - 3) / 320; // 4
t.uv0.v = (-d.v0.vertex3DInstance.y + 120) / 240;
t.uv1.u = (d.v1.vertex3DInstance.x + 160 - 3) / 320;
t.uv1.v = (-d.v1.vertex3DInstance.y + 120) / 240;
t.uv2.u = (d.v2.vertex3DInstance.x + 160 - 3) / 320;
t.uv2.v = (-d.v2.vertex3DInstance.y + 120) / 240;
}
BitmapMaterial(this._plane.material).resetMapping(); // 5
1のループで,
2と3では,
4からの6行が,
gihyo4.
計算しおわったら5でテクスチャを更新します。BitmapMaterialは内部で計算をキャッシュしているのでこれを呼ばないとテクスチャがアップデートされません。
これを対象となるオブジェクトをへこんだ曲面にすればワームホールになるわけです。このあたりをさくっと理解してつくれてしまうのは,