[Papervision3D2.0] Viewport3D
Papervision3D 2.0 の解析をちょっとずつ始めてみる。
とりあえず Viewport3D から。
これまでのバージョンだと、
var container:Sprite = new Sprite(); addChild(this.container); scene = new Scene3D( container );
てな感じでSpriteをビューポートに見立ててたのが、新たにViewport3Dとして実装されたと。
Viewport3DはSpriteを継承したクラスで、表示範囲のクリッピングと、表示範囲外ポリゴンのカリングを処理してくれる。Papervision3Dメモ#22で取り上げた、RectangleTriangleCullerの機能がここに結実といった感じ。
そんなこんなで、PV3D2.0からは、
var viewport:Viewport3D = new Viewport3D(0,0,true); addChild(viewport); scene = new Scene3D();
と、定義することになったらしい。(Scene3Dにviewportを突っ込む必要はナシ。)
Viewport3Dのコンストラクタ定義
Viewport3D(
viewportWidth:Number = 640,
viewportHeight:Number = 480,
autoScaleToStage:Boolean = false,
interactive:Boolean = false,
autoClipping:Boolean = true,
autoCulling:Boolean = true
)
- viewportWidth:ビューポートの幅
- viewportHeight:ビューポートの高さ
- autoScaleToStage:ステージサイズにビューポートのサイズをフィット
- interactive:インタラクティブモード?(未確認)
- autoClipping:ビューポート矩形範囲外をクリッピング
- autoCulling:ビューポート矩形範囲外ポリゴンをカリング
Spriteを継承してるので、ステージ上での位置指定や背景色指定は
viewport.x = 200; viewport.y = 200; viewport.opaqueBackground = 0xFF0000;
とかいう感じでできる。
widthとheightに関しては
viewport.width = 200; viewport.height = 200;
だと、当然ながらビューポート内のオブジェクトごと大きさが変わるので、ビューポート矩形のみ幅と高さを変えたい場合は、
viewport.viewportWidth = 200; viewport.viewportHeight = 200;
ってな具合で指定するとよろし。
また、ビューポートはいくつも定義できるので、以下のようなことが出来る。
Viewport3DTest.swf(要:FlashPlayer9)
ビューポートを4つ作ってマトリクス状に配置。
シーン内に、設置場所の異なるカメラを4つ配置して、
renderer.renderScene(scene,top_camera,top_view); renderer.renderScene(scene,front_camera,front_view); renderer.renderScene(scene,side_camera,side_view); renderer.renderScene(scene,quarter_camera,quarter_view);
って感じで、renderer.renderScene()メソッド(これも変わったポイント)にそれぞれのカメラとビューポートを指定した。ちょっとした3Dアプリみたいだわ。
Viewport3Dはだいたいこんな感じかな。
関連する投稿
Trackback URL : http://blog.r3c7.net/wp-trackback.php?p=130

素晴らしいです。
Viewport を複数設定できることは知りませんでした。もしよろしければ、Mainクラスの全体のSouceCodeを教えていただけませんか?
色々とハズカシイので勘弁してください。すんません。
great blog! I wish I could read japanese
are you sharing the source code? I’m trying to figure out how you get the nice gray shadows.
Hi felix,
> great blog!
just your work is very wonderful.
TiltViewer rocks!
>I’m trying to figure out how you get the nice gray shadows.
This demo used cheaper trick.
gray shadows are not realtime rendering, it’s texture mapping.
reference URL:
http://wiki.blender.org/index.php/Manual/Render_Bake
Thank you for your comment.
I’m sorry for poor English.
cheers.
[...] 参考にさせてもらった記事です。 ・[Papervision3D2.0] Viewport3D 今回から新たに加わったという、表示用クラス(?)Vieport3D。 ・[Papervision3D2.0] Render レンダリングの仕方が変わりました。 [...]