note.x

THE WORLD OF TRADITIONAL COLORS(要:FlashPlayer9)

[Papervision3D2.0] 日本の伝統色をHSV色空間に3Dプロットしてみた
のネタをAway3Dでもやってみる。

けど、単なる移植じゃつまんないし、簡易デモばっかしで殺伐としたこのblogに、色気を添える訓練も兼ねて、ちょっとしたコンテンツっぽく作り込んでみた。キチンと作り込もうとすると、AS3.0はいきなり牙を剥きますな。プリローディングとかハマりにハマった。苦労した分、勉強になったんでヨシとするべ。

各国の首都にポジションを合わせる処理は、
Learn how to geocode with Papervision3D and Adobe Flex
を参考に、Geoコードから割り出したベクトルを元に地球を回転させてます。

上記エントリのサンプルでも使ってるテクスチャは、地球テクスチャのデファクトスタンダードになりつつあるコレ。低解像度版がフリーで使える。


UV_test.swf(要:FlashPlayer9)

PV3Dと同じネタをAway3Dでもやってみた。
今回はflvをテクスチャにしてみた。Away3Dの場合 VideoStreamMaterial が無いんで、初期のPV3Dと同様に BitmapMaterial をマテリアル指定しておいといて、毎フレーム BitmapData.draw(video) で対処した。

UV定義の理屈は [Papervision3D2.0] geometry.faces[n].uv で書いたのと全く一緒。UV定義にアクセスする手段が違うんで一応メモ。

var mat:BitmapMaterial = new BitmapMaterial( BitmapData );
var objPlane:Plane = new Plane({material:mat, width:100, height:100});
scene.addChild(objPlane);

objPlane.faces[0].uv0 = new UV(0.5, 0);
objPlane.faces[0].uv1 = new UV(1, 0);
objPlane.faces[0].uv2 = new UV(0.5, 0.5);

objPlane.faces[1].uv0 = new UV(1, 0.5);
objPlane.faces[1].uv1 = new UV(0.5, 0.5);
objPlane.faces[1].uv2 = new UV(1, 0);

PV3Dは、VerticesとFaceを束ねる Geometry3D オブジェクトを経由するけど、Away3Dだと Geometry3D が排除されてるのでスッキリした印象。Geometry3Dって無駄としか思えんなぁ。

今回のデモとは全く関係ないけど、Away3Dのsvnリポジトリに FlashPlayer10対応版のブランチができてた。
http://away3d.googlecode.com/svn/branches/3.0.0/src/away3d/

Astro版を「Away3D 3.0」と位置づけてるみたいだ。
現状は、新しいビルトインクラスと名称がカブってた Matrix3D とかのクラス名変更のみで、最適化されてたりビルトインクラスへの置き換えがされてるわけじゃなく、FlashPlayer10向け開発環境でもコンパイル出来るようになったっていうだけっぽい。
とはいえAway3Dの開発チームは Astro 時代もライブラリの拡張を進めてくれそうで楽しみ。