Знакомство с papervision3d презентация

Содержание

Введение Papervision3D – написанная на AS3 библиотека (движок) для работы с 3-х мерной графикой в Adobe Flash и Flex С открытым исходным кодом MIT лицензия

Слайд 1ЗНАКОМСТВО С PAPERVISION3D
Рузанов Игорь.
UAFPUG, 16.08.2008.


Слайд 2Введение
Papervision3D – написанная на AS3 библиотека (движок) для работы с 3-х

мерной графикой в Adobe Flash и Flex
С открытым исходным кодом
MIT лицензия

Слайд 3Установка
Скачать из репозитория Svn (TortoiseSVN): http://papervision3d.googlecode.com/svn/trunk/branches/GreatWhite/src
Добавить файлы в classpath проекта
Импортировать papervision

классы в проект


Слайд 4Основные классы
Viewport3D
Scene3D
Camera3D (or alternatives)
BasicRenderEngine (or alternative)


Слайд 5package {    import … ;
   public class Main extends Sprite{         private var viewport:Viewport3D;         private var

scene:Scene3D;         private var camera:Camera3D;         private var renderer:BasicRenderEngine;         public function Main() {                initPapervision3D();         }         private function initPapervision3D():void {                viewport = new Viewport3D();                addChild(viewport);                scene = new Scene3D();                camera = new Camera3D();                renderer = new BasicRenderEngine();                renderer.renderScene(scene, camera, viewport);         }    } }


Слайд 6Viewport3D
viewportWidth
viewportHeight
autoScaleToStage
interactive
autoClipping – объекты вне прямоугольника viewport’a не будут рендерится
autoCulling -

будут рендерится только объекты, которые находятся перед камерой (треугольники спрятанные за другими треугольниками не будут отрендерены)


Слайд 7Camera3D
Camera3D
FreeCamera3D
FrustumCamera3D


Слайд 8BasicRenderEngine
private var renderer:BasicRenderEngine = new BasicRenderEngine();

//обычно вызывается на Event.ENTER_FRAME
renderer.renderScene(scene, camera, viewport);


Слайд 93D координаты


Слайд 103D объекты. Плоскость
Plane(material:MaterialObject3D=null, width:Number=0, height:Number=0, segmentsW:Number=0, segmentsH:Number=0,
initObject:Object=null)


Слайд 113D объекты. Сфера
Sphere(material:MaterialObject3D=null, radius:Number=100, segmentsW:int=8, segmentsH:int=6,initObject:Object=null)


Слайд 123D объекты. Куб
var materialsList:MaterialsList = new MaterialsList();

materialsList.addMaterial(frontMaterial, "front");
materialsList.addMaterial(backMaterial, "back");
materialsList.addMaterial(leftMaterial, "left");
materialsList.addMaterial(rightMaterial, "right");
materialsList.addMaterial(topMaterial,

"top");
materialsList.addMaterial(bottomMaterial, "bottom");

var cube:Cube = new Cube(materialsList);
scene.addChild(cube);

Слайд 133D объекты. Куб
var materialsList:MaterialsList = new MaterialsList();

var insideFaces:int = Cube.LEFT +

Cube.RIGHT + Cube.BOTTOM;

var cube:Material = new Cube(m, w, d, h, sS, sT, sH, insideFaces);

Слайд 14private function initPapervision3D():void {
viewport = new Viewport3D();
viewport.interactive = true;
viewport.autoScaleToStage = true;
addChild(viewport);

scene

= new Scene3D();
camera = new Camera3D();
camera.z = 0;
camera.focus = 20;

renderer = new BasicRenderEngine();
}

Инициализация Papervision3d


Слайд 15cube = new Cube(materials, CUBE_SIZE, CUBE_SIZE, CUBE_SIZE, CUBE_QUALITY, CUBE_QUALITY, CUBE_QUALITY, Cube.ALL,

Cube.NONE);

cube.addEventListener(InteractiveScene3DEvent.OBJECT_PRESS, mousePressHandler);

cube.addEventListener(InteractiveScene3DEvent.OBJECT_RELEASE, mouseReleaseHandler);

cube.addEventListener(InteractiveScene3DEvent.OBJECT_DOUBLE_CLICK, mouseDoubleClickHandler);

scene.addChild(cube);

Инициализация куба


Слайд 16private function mousePressHandler(e:Event):void {
state = UPDATING_STATE;
}

private function mouseReleaseHandler(e:Event):void {
state = EASING_STATE;
}

Обработка

событий мышки

Слайд 17removeEnterFrameListeners();

switch (value) {
case UPDATING_STATE :
stage.quality = StageQuality.LOW;
addEventListener(Event.ENTER_FRAME, updateCamera);
break;
case EASING_STATE :
stage.quality =

StageQuality.LOW;
addEventListener(Event.ENTER_FRAME, easeCamera);
break;
case NORMAL_STATE :
stage.quality = StageQuality.HIGH;
break;
}

Переключение между состояниями


Слайд 18private function createMaterial(url:String, sideName:String):MovieMaterial {
var movie:CubeSide = new CubeSide(url);
movie.addEventListener(Event.COMPLETE, bitmapLoaded);

var material:MovieMaterial

= new MovieMaterial(movie);
material.smooth = true;
material.interactive = true;
material.animated = true;

return material;
}

Создание материала (текстуры)


Слайд 19private function createArea():void {
var rect:Rectangle = new Rectangle(area[0], area[1], area[2], area[3]);
var

bitmap:Bitmap = Bitmap(loader.contentLoaderInfo.content);
var mc:Sprite = new Sprite();
mc.x = rect.x;
mc.y = rect.y;
mc.alpha = 0;
mc.addChild(getHighlightedBitmap(bitmap, rect));

mc.addEventListener(MouseEvent.MOUSE_OVER, handleMouseOver);
mc.addEventListener(MouseEvent.MOUSE_OUT, handleMouseOut);

addChild(mc);
}

Добавление событий мышки для материала


Слайд 20Полезные ссылки
http://blog.papervision3d.org/
http://pv3d.org/
http://papervision2.com/
http://blog.zupko.info/
http://mrdoob.com/blog/


Слайд 21Спасибо за внимание









Изображения для панорамы (с) MyDeco.com


Обратная связь

Если не удалось найти и скачать презентацию, Вы можете заказать его на нашем сайте. Мы постараемся найти нужный Вам материал и отправим по электронной почте. Не стесняйтесь обращаться к нам, если у вас возникли вопросы или пожелания:

Email: Нажмите что бы посмотреть 

Что такое ThePresentation.ru?

Это сайт презентаций, докладов, проектов, шаблонов в формате PowerPoint. Мы помогаем школьникам, студентам, учителям, преподавателям хранить и обмениваться учебными материалами с другими пользователями.


Для правообладателей

Яндекс.Метрика