- 2008年10月28日 (火)
- Tweet
Alternativa3Dを試してみる Part.02 : PrimitiveとMaterial
今回からはAlternativa3Dの技術的な解説に入っていきます。まずは基礎編ということでPrimitive(立方体や球などの3Dオブジェクト)とMaterial(3Dオブジェクトの表面)から。
Primitiveの一覧
今回はSWFでなくキャプチャ画像で。クリックすれば拡大ができます。ソースコードはこんな感じです。
[source:javascript]
scene.root.addChild(new Box(100, 100, 100, 3, 3, 3));
scene.root.addChild(new Cone(100, 100, 0, 1, 12));
scene.root.addChild(new Sphere());
scene.root.addChild(new GeoSphere());
scene.root.addChild(new Plane(150, 150, 3, 3));
scene.root.addChild(new GeoPlane(150, 150, 3, 3));
[/source]
引数はサイズやセグメント(レンダリングの分割数)です。気になったのはCylinderがないことですが、Coneの頂点半径を底辺の大きさとあわせれば、きっと少しは代用できます。
SphereとPlaneに対して、GeoSphereとGeoPlaneというのがありますが、頂点と分割方法が違っているみたいです。PV3DでいうならばSphereとGeoSphereが、PlaneとGeoPlaneが対応してますので、Alternativa3DのSphereとPlaneは一つの違いということになります。
Materialの一覧
GeoSphereにMaterialを貼付けてみました。こちらも画像で(クリックで拡大できます)。ソースコードはこんな感じです。
[source:javascript]
var o:GeoSphere = GeoSphere(scene.root.addChild(new GeoSphere()));
o.cloneMaterialToAllSurfaces(new WireMaterial(1, 0xFFFFFF, 1, BlendMode.NORMAL));
//o.cloneMaterialToAllSurfaces(new DevMaterial(DevMaterial.BSP_DEPTH, 16777215, 100, false, 65535, 0, 255, 1, BlendMode.NORMAL, -1, 0));
//o.cloneMaterialToAllSurfaces(new FillMaterial(0x00FFFF, 1, BlendMode.NORMAL, -1, 0));
//o.cloneMaterialToAllSurfaces(new TextureMaterial(new Texture(new MyImage().bitmapData), 1, true, false, BlendMode.NORMAL, -1, 0, TextureMaterialPrecision.BEST));
[/source]
特徴的なのはワイヤーフレーム以外のMaterialでも引数でブレンドモードやワイヤーフレームの太さを設定できることです。が、必要ないので今回のデモではワイヤーフレームはオフにしています。
順に説明まとめてみるとこんな感じです。
- WireMaterial ワイヤーフレームマテリアル
- FillMaterial 単色マテリアル
- DevMaterial フラットシェーディング風マテリアル(ちょっと違うかも)
- TextureMaterial ビットマップマテリアル
他にSpriteTextureMaterialというのがありましたが、バージョン5.5からの新機能だそうで、SurfaceMaterialを継承していないので同じ貼付け方をしようとするとエラー発生して確認できず。ここはASDoc以外の情報源が皆無なので今回は見送り、分かり次第追記したいと思います。
ということで今日はここまで。
投稿者 : 池田 泰延
BookMark
ブックマークはこちらからどうぞ。