feb19.jp blog - life is creative!

Papervision3D 2.0 - Great White

ブックマークに追加する tags:    

Papervision3D 2.0 - Great White

Papervision3Dが大幅アップデートで2.0(コード名:GreatWhite)に。何が変わったかというと。。。

まぁとりあえずの、サンプル。インタラクティブではないよ。

サンプル

Lightパッケージ追加でライトが使えるようになった。内部の座標計算が、ローカル座標→ワールド座標変換→ビュー座標変換→プロジェクション座標変換→スクリーン座標変換という一般的な3D計算の流れに基づくようになった。Viewパッケージ追加でなんか書き方大幅に変わった。けどBasicViewクラスとか継承すればコードが12行で作れたりするものもあったりで慣れれば便利っぽい。

後はよく分かりませんが、色々変わって検証しなおしって感じなのです。他力本願だとこうなるから、ROXIKの城戸さんみたいに自作3Dフレームワーク作りたいな。城戸さん新作楽しみにしてますー。AS3も慣れてきたし暇ができたらやってみようかな~。

はい。というわけで、以下が上のサンプルのソースです。ドキュメントクラスですよー。

package{
	import flash.display.*;
	import flash.events.*;
	import org.papervision3d.cameras.Camera3D;
	import org.papervision3d.render.BasicRenderEngine;
	import org.papervision3d.scenes.Scene3D;
	import org.papervision3d.view.Viewport3D;
	import org.papervision3d.objects.primitives.Plane;
	import org.papervision3d.objects.primitives.Cube;
	import org.papervision3d.materials.*;
	import org.papervision3d.materials.utils.*;
	import org.papervision3d.materials.special.CompositeMaterial;
	import org.papervision3d.materials.shadematerials.*;
	import org.papervision3d.lights.*;
	public class BasicDocument extends Sprite{
		private var scene:Scene3D;
		private var viewport:Viewport3D;
		private var camera:Camera3D;
		private var renderer:BasicRenderEngine;
		private var objCube:Cube;
		private var objPlane:Plane;
		private var light:PointLight3D;
		public function BasicDocument(){
			stage.align = StageAlign.TOP_LEFT;
			stage.scaleMode = StageScaleMode.NO_SCALE;
			stage.quality = StageQuality.MEDIUM;
			init3D();
		}
		private function init3D():void{
			//ビューポート設定
			viewport = new Viewport3D(0,0,true);
			viewport.opaqueBackground = 0x222222;
			addChild(viewport);
			light = new PointLight3D();
			light.x = light.y = light.z = 500;
			light.z = -100;
			//レンダー設定
			renderer = new BasicRenderEngine();
			//カメラ設定
			camera = new Camera3D();
			camera.z = -300;
			camera.focus = 500;
			camera.zoom = 1;
			//シーン設定
			scene = new Scene3D();
			//マテリアル設定
			var colorMat:ColorMaterial = new ColorMaterial( 0x006699, 1 );
			var wireMat:WireframeMaterial = new WireframeMaterial( 0x0099cc );
			var compoMat:CompositeMaterial = new CompositeMaterial();
			compoMat.addMaterial(colorMat);
			compoMat.addMaterial(wireMat);
			compoMat.doubleSided = true;
			//Plane生成
			objCube = new Cube(new MaterialsList({all:new GouraudMaterial(light)}), 300, 300, 300);
			scene.addChild(objCube);			
			addEventListener(Event.ENTER_FRAME, onEnterFrame);
		}
		private function onEnterFrame(event:Event):void {
			objCube.rotationX += 2;
			objCube.rotationY += 2;
			renderer.renderScene(scene,camera,viewport);
		}
	}
}

参考:
note.x
miscellaneous
Richard蒸しパン工場

2007年12月19日03:51

Webデザインブログ

「Papervision3D 2.0 - Great White」の関連エントリー

 iTunes Store(Japan)

コメントを投稿

トラックバック

このエントリーのトラックバックURL:
http://feb19.jp/mt/mt-tb.cgi/119

Navigation

古:AS3でNowLoadingな処理
新:AS3でTweener 1.31.67を使う
トップページ

Recently Entries
Mac でファイルの関連付けを変える(Mac で AIR アプリがアップデート出来ないを解決する方法)
ファイルを右クリックして「情報を見る」を選び、表示されたウィンドウの...
Mac OS X 10.6 Snow Leopard から入ってるフォント「Menlo」がコーディング作業にいい感じ
Xcode でコード書いているとき、Eclipse でコード書くより...
AIR で JSON 形式ファイルの入出力
AIR 祭り開催中。今回はファイル入出力。AS3 で扱っている Ob...
Adobe CS5 ティザーサイトオープン
カウントダウンが始まっています。いよいよ CS5 ですね。globa...
AIR でファイルがドラッグアンドドロップされたことを NativeDragEvent で検知する
最近また AIR が楽しい気がして触っているのですが、 Google...
iPhone アプリ "iBeat - BPM Counter" を発売しました & iPhone インタラクションデザインについて
BPM 計測アプリです。既に似たようなアプリはいくつか発売されている...
AS3 の演算子 ||= について
AS3 だけでつかえるものではないのですが、AS3 での動作を確認し...
iPhone SDK 「カテゴリ」について+NSString の空白文字を除去する
Objective-C では、高位のフレームワークで、低位のフレーム...
Flash CS4 で Flex SDK (mx パッケージ、クラス) を使う
Flex 用のライブラリとかを見ると mx パッケージとか使われてい...
Flash CS5 を予習 ~Text Layout Framework (TLF) 編~
Text Layout Framework (TLF) を使って、F...