Archivo

Entradas Etiquetadas ‘Papervision3d’

Actionscript 3 – Papervision3D Interactive Collada, DAE objects.

lunes, 30 de marzo de 2009 miguelMoraleda 5 comentarios

Para los que no saben lo que es un Collada o DAE, los archivos Collada son modelos 3D, exportados a formato xml. Basicamente se define dentro de este xml, cada vertice, mesh, material, etc. de un objeto. Si se estan preguntando para que podria llegar a servir esto, la respuesta es sencilla, para transportar de manera universal los modelos a otras tecnologias, como en este caso es papervision3D, que posee un DAEParser que genera estos modelos en nuestro escenario.

Mas informacion de los archivos Collada en wikipedia

Para lograr que un objeto collada sea interactivo dentro de papervision3D, debemos cumplir con los siguientes requerimientos:

  • Que el viewport sea interactivo…. viewport.interactive = true.
  • Que todos los materiales del collada tambien sean interactivos.
  • Y por ultimo, pero lo mas importante agregar el listener para el InteractiveScene3DEvent en cada uno de los objetos dentro de nuestro collada.

Como en general, si estan trabajando con colladas descargados de por ahi y no creados por ustedes mismos, no sabran que cantidad de subobjetos tenga su collada, y lo mismo para la cantidad de materiales, es por eso que para agregar los listeners yo uso una funcion recursiva que se los agregue a cada child. Para los materiales es un poco mas sencillo, accediendo a la lista de materiales del objetos puedes setearlos a todos como interactivos.

Aca les pongo un ejemplo de como seteo cada material como interactivo:

1
2
3
4
5
6
7
private function setInteractiveMaterials(targetObject:DisplayObject3D, value:Boolean):void
{
	for each(var mat:MaterialObject3D in _targetObject.materials.materialsByName)
	{
		mat.interactive = value;
	}
}

Luego de tener todos los materiales del objeto como interactivos solo resta agregar el listener a cada child. Eso lo hago mediante la siguiente funcion.

1
2
3
4
5
6
7
8
private function addEventListeners(displayObject:DisplayObject3D, eventType:String, listener:Function):void
{
	displayObject.addEventListener(eventType, listener);
 
	for each(var child:DisplayObject3D in displayObject.children) {
		addEventListeners(child, eventType, listener);
	}
}

La llamada a la funcion seria algo asi:

1
addEventListeners(_obj, InteractiveScene3DEvent.OBJECT_PRESS, daePressedHandler);

Realmente no estoy seguro si esta es la mejor manera de hacer eso, cualquier sugerencia y/o comentario sera bien recibido.

VER EJEMPLO
DESCARGAR EJEMPLO PARA CS4
DESCARGAR EJEMPLO PARA CS3

Categories: Papervision3d Tags:

Tutorial Papervision3D – Load Collada DAE example source

domingo, 8 de marzo de 2009 miguelMoraleda 5 comentarios

collada

VER EJEMPPLO

DESCARGAR EJEMPLO

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
package
{
	import flash.events.Event;
	import org.papervision3d.materials.utils.MaterialsList;
	import org.papervision3d.materials.WireframeMaterial;
	import org.papervision3d.objects.parsers.DAE;
	import org.papervision3d.objects.DisplayObject3D;
	import org.papervision3d.view.BasicView;
	import flash.display.Sprite;
 
	public class Main extends BasicView
	{
		private var _obj:DAE;
 
		public function Main()
		{
			super(0, 0, true);
 
			createObject();
 
			_camera.zoom = 1000 / _camera.focus + 1;
			var cameraTarget:DisplayObject3D = new DisplayObject3D();
			_camera.target = cameraTarget;
 
			startRendering();
		}
 
		private function createObject():void
		{
			_obj = new DAE(false, "objeto");
			_obj.load("soccer.DAE");
			scene.addChild(_obj);
		}
 
		override protected function onRenderTick(event:Event = null):void
		{
			_obj.roll(1);
 
			super.onRenderTick(event);
		}
	}
}



Categories: Flash, Papervision3d Tags:

Tutorial Papervision3D – Lights, light examples source code

sábado, 7 de marzo de 2009 miguelMoraleda Sin comentarios

papervision3d-light

En papervision3D, podemos encontrar distintos tipos de materiales que funcionan con una luz: FlatShadeMaterial, GouraudMaterial, PhongMaterial, entre otros. Aca les dejo un ejemplo de material iluminado, el FlatShadeMaterial.
VER EJEMPLO
DESCARGAR EJEMPLO


Categories: Papervision3d Tags:

flash actionscript 3 AS3DMod flag or cloth effect, changing objects

sábado, 7 de marzo de 2009 admin Sin comentarios

bandera-chile-320x320 as3dmod-320x320

Aca otra importante libreria, AS3DMod es una libreria para modificar objetos 3D. sus principales caracteristicas son:
Current version 0.2. Features include:

VER EJEMPLO
DESCARGAR EJEMPLO

1. 7 modifiers as listed above
2. a framework for creating static and animated modifier stacks
3. 4 plug-ins for the most popular 3d engines: Pv3d, Away3d, Sandy3d and Alternativa3d
4. a simple demo for each engine

El sitio del proyecto es http://code.google.com/p/as3dmod/ ahi pueden bajarselo y encontrar ejemplos.


Get Adobe Flash playerPlugin by wpburn.com wordpress themes