

Posted by EHXM. Posted in " Adobe Flash Platform/Tutorial "2009/06/01 04:08
Papervision 3D 의 Flex 개발을 위한 개발 환경 설정에 관한 내용입니다.
Papervision은 MIT에서 개발한 액션스크립트 엔진입니다.
MIT 라이센스를 가지며, 누구나 사용할 수 있는 오픈소스입니다.
// ActionScript file - pv3dBase.as
package ehxm{
import flash.display.Sprite;
import flash.events.Event;
import org.papervision3d.view.Viewport3D;
import org.papervision3d.cameras.*;
import org.papervision3d.scenes.Scene3D;
import org.papervision3d.render.BasicRenderEngine;
public class pv3dBase extends Sprite {
//pv3d를 위한 viewport, renderer, scene, camera를 정의
public var viewport:Viewport3D;
public var renderer:BasicRenderEngine;
public var scene:Scene3D;
public var camera:Camera3D;
public function init(vpWidth:Number = 800, vpHeight:Number = 600):void {
initPV3D(vpWidth, vpHeight);
init3d();
init2d();
initEvents();
}
protected function initPV3D(vpWidth:Number, vpHeight:Number):void {
// viewport, renderer, scene, camera를 초기화
if (vpWidth == 0) {
viewport = new Viewport3D(stage.width, stage.height, true, true);
}else{
viewport = new Viewport3D(vpWidth, vpHeight, false, true);
}
addChild(viewport);
renderer = new BasicRenderEngine();
scene = new Scene3D();
camera = new Camera3D();
}
protected function init3d():void {
// models, materials, cameras 등을 초기화
}
protected function init2d():void {
}
//ENTER_FRAME 이벤트로, 프레임마다 처리해주는 함수
protected function initEvents():void {
addEventListener(Event.ENTER_FRAME, onEnterFrame);
}
protected function processFrame():void {
// Process any movement or animation here.
}
protected function onEnterFrame( ThisEvent:Event ):void {
processFrame();
renderer.renderScene(scene, camera, viewport);
}
}
}
// ActionScript file - tutorial.as
package ehxm{
import mx.containers.Canvas;
import org.papervision3d.materials.ColorMaterial;
import org.papervision3d.objects.primitives.Cone;
public class tutorial extends pv3dBase{
public var cone:Cone;
public var mat:ColorMaterial;
//출력될 canvas를 매개변수로 받아서 canvas의 width, height로 viewport의 width, height설정
public function tutorial(id:Canvas){
init(id.width, id.height);
}
override protected function init3d():void{
//다각뿔 생성, scene에 추가
cone = new Cone(null);
cone.scale = 1;
camera.zoom=100;
cone.pitch(-10);
scene.addChild(cone);
}
override protected function processFrame():void{
//회전
cone.yaw(1);
}
}
}소스 끝 (붙여넣으실때 이부분은 제거하여주세요)
여러분의 커뮤니케이션을 기다리고 있습니다.

아이디어의 전쟁의 현장이었던 2010년 대한민국 매쉬업 경진대회에 다녀왔습니다. 이번 대회는 지난 2월 6일(토요일), 삼성동 코엑스 컨퍼런스룸 401에서 열렸습니다. 이번.....
2010년에 100가지가 넘는 안드로이드 폰 출시가 될 예정입니다. Mobile World Congress keynote에서 Google CEO Eric Schmidt의 연설.....
서울, 안양, 부산, 대구, 광주, 대전에 안드로이드 폰 체험 할 수 있는 곳이 있네요. 저는 코엑스 메가박스 입구에 있는 모토로라 체험 부스에서 우연히 모토로이를 만져보게 되.....
위 3D 갤러리는 http://www.fotoviewr.com/ 사이트의 Fotoviewr 입니다. Flex와 Papervision3D를 이용하여 위와같은 3D 갤러리를 구현해.....
Total : 115,867 Today : 223 Yesterday : 155