- 2009-04-27 (月)
- Papervision3D 2.0
いまさらって感じもしないことないけども、Flash Player 10 の処理能力の向上と、PV3D が 2.0 になっていたということで、いまのうちに基本的なことくらいは把握しておこうと思い、ちょっと触ってみることに。
このサイトをご覧頂くには最新の Flash Player Plug-in をお使いのブラウザにインストールする必要があります。
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
トラックバック:0
- この記事のトラックバックURL
- http://god.xsrv.jp/__mt/mt-tb.cgi/1414
- トラックバックを受ける記事
- Papervision3D 2.0 を触ってみる from 1ka2ka.com Flash & Action Script