public class Learn extends Music{ public function Learn(){ design(); seo(); rock(); snowboarding(); skateboarding(); movie(); if(me==happy){ everyone == happy; }else if(me==sad){ drink++; } } }

papervision

Posted: 12月 15th, 2009 | Author: yoheim | Filed under: Papervision3D | No Comments »

最近、勉強していなかったpapervisionを再開しました。

自分のポートフォリオサイトには3D表現を入れてみたいなぁと思っているのですが

まだ、基礎編をやっているので、はっきりとは理解していません。

僕的に3D表現に非常に興味があるので、勉強を進めて行きたいところなのですが、
なにせ、まだas3自体の勉強もまだまだな感じなので
いまいち手が回りません。

時間を作ってpapervisionもやっていけたらいいなぁと思ってます。

今から、一旦as勉強を終えて自分のポートフォリオと依頼されているサイトの製作をしたいと考えてます。

後でまだ気力があったらasの勉強を再開します。


そんな、PV3Dです。

This movie requires Flash Player 9


以下ソースです。
package
{
import flash.display.*;
import flash.events.*;
//PaperVision
import org.papervision3d.scenes.Scene3D;
import org.papervision3d.cameras.Camera3D;
import org.papervision3d.view.Viewport3D;
import org.papervision3d.render.BasicRenderEngine;
import org.papervision3d.objects.DisplayObject3D;
import org.papervision3d.objects.primitives.Plane;
import org.papervision3d.materials.MovieAssetMaterial;


public class Test extends Sprite
{
private var scene:Scene3D;
private var camera:Camera3D;
private var renderer:BasicRenderEngine;
private var viewport:Viewport3D;

private var stageW:Number;
private var stageH:Number;
private var vpX:Number;
private var vpY:Number;


public function Test()
{
init();

}

private function init():void
{
setStage();//ステージ初期化
setCamera();//カメラ初期化
setScene();//シーン初期化
setDO3D();//オブジェクト初期化
addEventListener(Event.ENTER_FRAME, onEnterframe);

}

private function onEnterframe(e:Event):void
{
var angleX:Number = (mouseX – vpX) * 0.0001;
var angleY:Number = (mouseY – vpY) * 0.0001;
moveCameraX(angleX);
moveCameraY(angleY);
renderer.renderScene(scene, camera, viewport);
}

private function moveCameraY(angleY):void
{
var cosY:Number = Math.cos(angleY);
var sinY:Number = Math.sin(angleY);
camera.y = camera.y * cosY – camera.z * sinY;

}

private function moveCameraX(angleX):void
{
var cosX:Number = Math.cos(angleX);
var sinX:Number = Math.sin(angleX);
camera.x = camera.x * cosX – camera.z * sinX;

}

private function setDO3D():void
{
var material:MovieAssetMaterial = new MovieAssetMaterial(”ever_mc”, true, true);
material.oneSide = false;
material.smooth = true;
var plane:Plane = new Plane(material, 279, 61, 4, 4);
scene.addChild(plane);

}

private function setCamera():void
{
camera = new Camera3D();
camera.x = 0;
camera.y = 200;
camera.z = -200;
camera.zoom = 30;
camera.focus = 30;
camera.target = DisplayObject3D.ZERO;

}

private function setScene():void
{
renderer = new BasicRenderEngine();
scene = new Scene3D();
viewport = new Viewport3D(0, 0, true, true);
addChild(viewport);

}

private function setStage():void
{
stage.quality = StageQuality.MEDIUM;
stage.scaleMode = StageScaleMode.NO_SCALE;
stage.align = StageAlign.TOP_LEFT;
stageW = stage.stageWidth;
stageH = stage.stageHeight;
vpX = stageW / 2;
vpY = stageH / 2;


}

}

}





Leave a Reply