Esempio: Assi di riferimento

import flash.display.Sprite;
import flash.events.Event;
import org.papervision3d.view.*;
import org.papervision3d.scenes.Scene3D;
import org.papervision3d.cameras.Camera3D;
import org.papervision3d.materials.*;
import org.papervision3d.materials.utils.MaterialsList;
import org.papervision3d.objects.primitives.*;
import org.papervision3d.render.BasicRenderEngine;
import org.papervision3d.materials.shadematerials.*;
import org.papervision3d.lights.*;

var renderer = new BasicRenderEngine();

// impostiamo la scena 
var viewport = new Viewport3D(200, 200, false, true);
viewport.x=-50;
viewport.y=50;
addChild(viewport);
var scena = new Scene3D();
var camera = new Camera3D();
camera.near=30;
camera.x=200;
camera.y=200;

// creiamo un oggetto da usare come punto di 
// riferimento per la telecamera
var centro:Cube =  new Cube( new MaterialsList({all:new ColorMaterial(0xffffff)}), 
                             5, 5, 5);
// creiamo gli assi di riferimento
var Y:Cube = new Cube( new MaterialsList({all:new ColorMaterial(0xff0000)}),
                       100, 2, 2);

var Z:Cube  = new Cube( new MaterialsList({all:new ColorMaterial(0x00ff00)}), 
                        2, 100, 2);

var X:Cube  = new Cube( new MaterialsList({all:new ColorMaterial(0x0000ff)}),
                        2, 2, 100);

Y.x=50;
X.y=50;
Z.z=50;
scena.addChild(X);
scena.addChild(Y);
scena.addChild(Z);

scena.addChild(centro);

// disegno un cubo con le ombre
var thelight:PointLight3D = new PointLight3D(false);
thelight.z = -300;
thelight.x = -300;
var materiale = new FlatShadeMaterial(thelight, 0xff0000, 0x000000);
var solido = new Cube(new MaterialsList({all:materiale}), 40, 40, 40);
scena.addChild(solido);
solido.x=30;
solido.y=30;
solido.z=30;


// disegnamo una nuova vista della scena
var viewport2 = new Viewport3D(200, 200, false, true);
viewport2.x=200;
viewport2.y=30;
addChild(viewport2);
var camera2 = new Camera3D();
camera2.x=0;
camera2.y=0;
camera2.z=300;
camera2.lookAt(solido);
camera.lookAt(centro);

// facciamo in modo che ad ogni
// refresh dello stage la scena venga ridisegnata
addEventListener(Event.ENTER_FRAME, onEnterFrame);
function onEnterFrame(e:Event):void {
	solido.rotationY += 2;
	renderer.renderScene(scena, camera, viewport);
	renderer.renderScene(scena, camera2, viewport2);
}