トップ > Papervision3D 2.0 > Papervision3D 2.0 を触ってみる

Papervision3D 2.0 を触ってみる

いまさらって感じもしないことないけども、Flash Player 10 の処理能力の向上と、PV3D が 2.0 になっていたということで、いまのうちに基本的なことくらいは把握しておこうと思い、ちょっと触ってみることに。

このサイトをご覧頂くには最新の Flash Player Plug-in をお使いのブラウザにインストールする必要があります。
Flash Player Plug-in はこちらからダウンロードする事が出来ます(無料)。

準備は簡単。

Google Code から Papervision3D をダウンロード。※現時点のバージョンは 2.0.883。

zip で一括ダウンロードできるんで楽だね。でも PV3D はマイナーチェンジでも結構仕様が変わることもあるようでちょっと要注意…(汗

実はいまいち分かっていないところもあるんだけども、とりあえずはこんな感じで動く。


package
{
	import flash.display.*;
	import flash.events.*;
	import flash.geom.*;
	import caurina.transitions.Tweener;
	import caurina.transitions.properties.ColorShortcuts;
	import caurina.transitions.properties.DisplayShortcuts;
	//Papervision3D 2.0.883
	import org.papervision3d.scenes.Scene3D;
	import org.papervision3d.cameras.Camera3D;
	import org.papervision3d.view.Viewport3D;
	import org.papervision3d.render.BasicRenderEngine;
	import org.papervision3d.objects.primitives.Cube;
	import org.papervision3d.materials.ColorMaterial;
	import org.papervision3d.materials.WireframeMaterial;
	import org.papervision3d.materials.special.CompositeMaterial;
	import org.papervision3d.materials.utils.MaterialsList;
	public class Main extends Sprite
	{
		public var main:MovieClip;
		private var scene:Scene3D;
		private var camera:Camera3D;
		private var viewport:Viewport3D;
		private var renderer:BasicRenderEngine;
		private var cube:Cube;
		/*============================================================
		コンストラクタ
		============================================================*/
		public function Main()
		{
			init();
			init3D();
		}
		/*============================================================
		初期設定
		============================================================*/
		public function init():void
		{
			//ステージ
			stage.showDefaultContextMenu = false;
			stage.scaleMode = StageScaleMode.NO_SCALE;
			stage.align = StageAlign.TOP_LEFT;
		}
		/*============================================================
		3D処理
		============================================================*/
		public function init3D():void
		{
			scene = new Scene3D();//シーン
			camera = new Camera3D();//カメラ
			renderer = new BasicRenderEngine();//レンダラー
			viewport = new Viewport3D(0, 0, true);//ビューポート
			viewport.opaqueBackground = 0x000000;//背景色
			addChild(viewport);
			
			//オブジェクト
			var coMaterial:ColorMaterial = new ColorMaterial(0xFF6600); //カラーマテリアル
			var wiMaterial:WireframeMaterial = new WireframeMaterial(0xFFFFFF); //ワイヤーフレームマテリアル
			var compMaterial:CompositeMaterial = new CompositeMaterial(); //コンポジットマテリアル
			compMaterial.addMaterial(coMaterial);
			compMaterial.addMaterial(wiMaterial);
			var materials:MaterialsList = new MaterialsList
			({
				all : compMaterial
			});
			cube = new Cube(materials, 400, 300, 200);//Cube生成
			scene.addChild(cube);
			
			addEventListener(Event.ENTER_FRAME, onEnterFrame);
		}
		/*============================================================
		レンダリング
		============================================================*/
		function onEnterFrame(event:Event):void
		{
			var mousePos:Point = new Point(stage.mouseX, stage.mouseY);//マウスカーソルの位置を取得
			mousePos.offset( -stage.stageWidth / 2, -stage.stageHeight / 2); //ステージの中心に座標をオフセット
			cube.rotationX += mousePos.y / 20;
			cube.rotationY += mousePos.x / 20;
			renderer.renderScene(scene, camera, viewport);//レンダリング
		}
	}
}

以前に FIVe3D を触ったことがあるんだけども、PV3D だと camera とか用意されているんで、どんな感じで制御できるのかが楽しみな部分でもある。

いろいろと試してみなくては!

この記事をブックマークしておく

コメント:0

コメント投稿

コメントを表示する前にこのブログのオーナーの承認が必要になることがあります。

この情報を記憶する

トップ > Papervision3D 2.0 > Papervision3D 2.0 を触ってみる

記事検索
カテゴリ
RSSフィード

このページの先頭へ戻る