Papervision3D の Objects(1) ~ Cube ~
2007/04/06 23:34 - Papervision3D
PV3D のプリミティブオブジェクトを試してみます。
Objects パッケージには 10 個のクラスがありますが、試すのは Cube、Cone、Cylinder、Sphere、Plane の 5 個にします。
レンダリングソフトとそのインポートには特に興味がないので Ase と Collada は割愛。
宇宙空間を表現することにも興味がないので Stars も割愛します。
DisplayObject3D も今回試すプリミティブオブジェクトとは関連がないようなのでこれまた割愛。
そしてツブシの利かない紙飛行機 PaperPlane も割愛です。
ただ、PaperPlane は三角形平面オブジェクトクラスを作りたいと思ったときに、何か役に立ちそうな予感。
そんなわけで Cube から。
Cube
Cube( material : MaterialObject3D = null, width : Number = 500, // 幅 depth : Number = 500, // 奥行き height : Number = 500, // 高さ segmentsS : Number = 1, // width のセグメント数 segmentsT : Number = 1, // depth のセグメント数 segmentsH : Number = 1, // height のセグメント数 initObject : Object = null )
コンストラクタの引数から分かるように、Cube は立方体のみならず、直方体を形成するクラスとして設計されていますね。
以下、第2~第7引数をいろいろ弄るとどんな形状になるのか試してみたサンプル。
いずれも領域クリックで起動。
動作は mouseX による rotationY から始まり、mouseY による ratationX とトグルで切り替わります。
なお、第1引数は以下の二つを試します(次回以降の円錐や円柱もこの二つの material を適用します)。
- 不透明の ColorMaterial( wireframe 付き)
- BitmapMaterial でライブラリのイメージファイル
原型(立方体)
( ColorMaterial , 100 , 100 , 100 , 1 , 1 , 1 )
|
( BitmapMaterial , 100 , 100 , 100 , 1 , 1 , 1 )
|
セグメント数変動
( ColorMaterial , 100 , 100 , 100 , 1 , 2 , 3 )
|
( BitmapMaterial , 100 , 100 , 100 , 1 , 2 , 3 )
|
辺長変動(直方体)
( ColorMaterial , 100 , 150 , 200 , 1 , 1 , 1 )
|
( BitmapMaterial , 100 , 150 , 200 , 1 , 1 , 1 )
|
( ColorMaterial , 70 , 200 , 20 , 1 , 1 , 1 )
|
( BitmapMaterial , 70 , 200 , 20 , 1 , 1 , 1 )
|
辺長およびセグメント数変動
( ColorMaterial , 100 , 150 , 200 , 2 , 3 , 4 )
|
( BitmapMaterial , 100 , 150 , 200 , 2 , 3 , 4 )
|
- ソース( CubeTest.zip 4.04 KB 注:イメージファイルは同梱していません)
ソースやリファレンスでは(1)幅、(2)奥行き、(3)高さの順で定義するってことになっているけど、何か実際に作ったものを見ると(1)奥行き、(2)幅、(3)高さの順で定義されているような……