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); }