オブジェクトを表示する

PaperVision3D を使用してオブジェクトを表示します。(Papervision3D 逆引きシリーズ)

PaperVision3D を使用してオブジェクトを表示するには以下の手順を踏みます。

1, ビューを作る

ビューは PaperVision で 3D を表示するのに必要なカメラ、ビューポート、シーン、レンダラーをひとまとめにしたクラスです。ビューを利用することで 3D を表示するのに必要な環境が準備されます。サンプルでは最初から用意されているビューである BasicView を使用しています。

2, ビューをドキュメントクラスの子(あるいは子孫)として追加する

Sprite オブジェクトの派生クラスなので、通常の DisplayObjectContainer に子として追加することができます。通常の Sprite 同様、ドキュメントクラスかその子孫に addChild してやらないと表示されません。

3, 表示する 3D オブジェクトを作る

3D として表示するオブジェクトは DisplayObject3D の派生クラスとして用意されています。サンプルでは球(Sqhere)を生成しています。

4, ビューが持っているシーンに 3D オブジェクトを追加する

ビューが持つシーン(scene)の addChild() メソッドを呼び出して、シーンに 3D オブジェクトを追加します。

5, ビューのレンダリングを開始する

ビューの startRendering() メソッドを呼び出すと、ビューに対して 3D オブジェクトが描画されるようになります。

ソース

package
{
    import flash.display.Sprite;
    import flash.events.Event;
    import org.papervision3d.view.BasicView;
    import org.papervision3d.objects.primitives.Sphere;
    import org.papervision3d.materials.WireframeMaterial;
    
    [SWF(width="320", height="240", backgroundColor="#FFFFFF")]
    public class Sample002 extends Sprite
    {
        public function Sample002 ()
        {
            // 1, ビューを作る
            var view:BasicView = new BasicView();
            
            // 2, ドキュメントクラスにビューを追加する
            addChild(view);
            
            // 3, 表示する 3D オブジェクトを作る
            var object:Sphere = new Sphere(new WireframeMaterial());
            object.scale = 2;

            // 4, ビューが持っているシーンに 3D オブジェクトを追加する
            view.scene.addChild(object);
            
            // 5, ビューのレンダリングを開始する
            view.startRendering();
            
            // 6, 毎フレームごとにオブジェクトを回転
            addEventListener(Event.ENTER_FRAME, function (event:Event):void {
                object.rotationY+=3;
            });
        }
    }
}