Prueba de Line3d en Papervision GreatWhite

Etiquetas: Lines3D addNewLine Line3D BasicRenderEngine Viewport3D

Hace tiempo que le tenia echado el ojo, asi que hace un rato me he puesto y me ha sorprendido lo fácil que es utilizar esta clase. Veo mucho potencial, a ver si me instalo la CS4 y hago un ejemplo de CS4 + la nueva función extract de FP10. Aquí dejo el fuente por si le ayuda a alguien:

package{
 
	import flash.display.*
 
	public class Main extends MovieClip{
 
		import flash.events.Event;
 
		import org.papervision3d.cameras.Camera3D;
		import org.papervision3d.view.Viewport3D;
    	import org.papervision3d.cameras.Camera3D;
		import org.papervision3d.scenes.Scene3D;
		import org.papervision3d.render.BasicRenderEngine;
		import org.papervision3d.core.geom.*;
		import org.papervision3d.materials.special.*;
		import org.papervision3d.objects.*;
 
		var escena:Scene3D;
		var renderer:BasicRenderEngine;
		var camara:Camera3D;
		var viewport:Viewport3D;
		var lineMaterial = new LineMaterial(0x009900,.5);
		var lineas:Lines3D = new Lines3D(lineMaterial);
		var contenedor:DisplayObject3D = new DisplayObject3D();
 		var x1; var y1; var z1; var x2; var y2; var z2;
		var cont = 0;
		public function Main(){
			init();
		}
 
		public function init():void{
			escena = new Scene3D();
			renderer = new BasicRenderEngine();
			camara = new Camera3D();
			viewport = new Viewport3D(1000,600);
			addChild(viewport);
			camara.z = -500;
			escena.addChild(contenedor);
			contenedor.addChild(lineas);
			addEventListener(Event.ENTER_FRAME, renderizar);
 
		}
 
		private function renderizar(e:Event):void{	
			contenedor.yaw(1);
			renderer.renderScene(escena, camara, viewport);
			if(cont < 500){
				x1 = x2;
				y1 = y2;
				z1 = z2;
				cont+= 2
				x2 = Math.sin(cont) * 250
				y2 = cont - 250
				z2 = Math.cos(cont) * 250
				lineas.addNewLine(2,x1,y1,z1,x2,y2,z2)
			}
 
		}
	}
}

Comentarios:
No hay comentarios
Dejar un comentario:
Tu nombre (obligatorio):

E-mail (obligatorio, no se mostrará):

Web: