Está en la página 1de 20

Papervision3D

Introducción
Descargar Papervision3.0

La página de inicio es:http://code.google.


com/p/papervision3d/

Tres versiones librería:


Descargar a través de Subversion
Descargar versión comprimida (.zip)
Descargar librería compilada (.swc)
Elementos básicos de una
escena

Scene
Viewport
Camera
3D Object
Material
Render Engine
Scene (escena)

Es el conjunto de todos los objetos 3D en el


espacio.
Es como el escenario (stage) en Flash pero
con tres coordenadas (x, y,z)
Para que un objeto 3D sea visible hay que
añadirlo a la escena.
Si no se añaden objetos, no aparece nada en
pantalla.
Camera (cámara)

Funciona como una cámara en el mundo real


Es un objeto 3D que muestra nuestro punto
de vista desde el que vemos la escena.
No es un objeto visible
Igual que una cámara podemos enfocar y
hacer zoom.
Podemos excluir objetos muy cercanos o
lejanos.
Viewport (vista)

Es el container sprite en el stage


Funciona como una ventana, con alto, ancho
Define lo que se ve.
Objetos 3D

Las formas (shapes) en 3D son objetos 3D


DisplayObject3D en PV3D
Son como Sprites o Movie Clips, pero con 3
ejes
Pueden colocarse en cualquier punto del
espacio y rotarlos sobre tres ejes
Materials

Es la textura que se aplica a los objetos 3D.


Existe una gran variedad, desde un simple
color hasta un stream video
Pueden estar sombreados. La luz es una
propiedad del sombreador.
Render Engine
(Motor de Renderización)

Es como la película de la cámara.


Cuando ponemos en marcha el render, lo
recogido por la cámara se muestra en el
viewport
Es la tarea que requiere más recursos del
sistema
Sistema de coordenadas
cartesianas
(Left-Handed)
Clase básica en PV3D
Estructura general de la clase:

package {
public class FirstApplication() extend Sprite {
public function FirsApplication() {
}
}
}
Clase básica en PV3D

Clases Importadas:

import flash.display.Sprite;
import org.papervision3d.cameras.Camera3D;
import org.papervision3d.objects.primitives.Sphere;
import org.papervision3d.render.BasicRenderEngine;
import org.papervision3d.scenes.Scene3D;
import org.papervision3d.view.Viewport3D;
Clase básica en PV3D

Propiedades de la Clase:

private var scene:Scene3D;


private var viewport:Viewport3D;
private var camera:Camera3D;
private var renderEngine:BasicRenderEngine;
private var sphere:Sphere;
Clase básica en PV3D

Creamos Instancias dentro del método


constructor:

scene = new Scene3D();


camera = new Camera3D();
sphere = new Sphere();
Clase básica en PV3D

Añadimos el Objeto 3d a la escena:


scene.addChild(sphere);

Creamos y añadimos el viewport:


viewport = new Viewport3D();
addChild(viewport);
Clase básica en PV3D

Creamos en renderer
renderEngine = new BasicRenderEngine();

Llamamos al método renderScene


renderEngine.renderScene(scene,camera,viewport);
Clase básica en PV3D
Clase básica en PV3D
Para que la perspectiva se vea más claramente,
vamos a mover la esfera, haciéndola girar
renderEngine.renderScene(scene, camera, viewport);
addEventListener(Event.ENTER_FRAME, render);

private function render(e:Event):void {


sphere.localRotationY +=1;
renderEngine.renderScene(scene, camera, viewport);
}
Clase básica en PV3D

Podemos simplificar este ejemplo.


Como BasicView es una clase que extiende la
clase Sprite podemos extender nuestra clase
FirstApplication con BasicView y así ahorrarnos
código.
Así podemos escribir nuestra aplicación
utilizando propiedades y métodos de la super
clase.
Clase básica en PV3D
package {

import flash.events.Event;
import org.papervision3d.objects.primitives.Sphere;
import org.papervision3d.view.BasicView;
public class BasicViewExample extends BasicView {

private var sphere:Sphere;

public function BasicViewExample() {

stage.frameRate = 40;
sphere = new Sphere();
scene.addChild(sphere);
startRendering();
}

override protected function onRenderTick(e:Event=null):void {

sphere.localRotationX +=1;
super.onRenderTick();

}}}

También podría gustarte