Archivo de la etiqueta: pv3d

Medidores FPS (FrameRates)

En Internet rondan varios tipos de medidores de FPS “Frames Per Second – Fotogramas Por Segundo”
los podemos encontrar de todos los colores y hasta con gráficas en tiempo real.

1) Viene incluido con PV3D – Papervision 3D “ascollada”
Nos muestra FPS, Mili segundos y Uso de memoria representada por una barra roja por de-abajo del texto.
un ejemplo rápido de uso:

package
{
	import org.ascollada.utils.FPS;

	public class main extends Sprite
	{
		public function main():void
		{
			//creamos en el stage
			addChild( new FPS() );
		}
	}
}


Resultado:
ascollada

2) Este es escrito por mr.doob
Esta clase incluye gráfica en tiempo real que nos representa el uso de Memoria Usada, Memoria Disponible, Fotogramas, Mili segundos
un ejemplo rápido de uso:

package
{
	import net.hires.debug.Stats;

	public class main extends Sprite
	{
		public function main():void
		{
			//creamos en el stage
			// Stats(__THEME PARAMS__)
			// theme params: { bg: 0x202020, fps: 0xC0C0C0, ms: 0x505050, mem: 0x707070, memmax: 0xA0A0A0 }
			addChild( new Stats() );
		}
	}
}


Resultado:
mrdoob

3) Es escrito por Oaxoa
Este clase nos muestra los FPSes y uso de memoria representada con una gráfica linear.
un ejemplo rápido de uso:

package
{
	import com.oaxoa.components.FrameRater;

	public class main extends Sprite
	{
		public function main():void
		{
			//creamos en el stage
			// FrameRater(__PARAMS__)
			// params: textColor:uint=0x000000, drawShadow:Boolean=false, showGraph:Boolean=true, graphColor:uint=0xff0000
			addChild( new FrameRater(0x000000, true, true) );
		}
	}
}


Resultado:
Oaxoa

Embed 3D Modelo con PV3D

¿Que es Embed y como usarlo?
Embed: En traducción de ingles quiere decir “incrustar”, real mente es lo que hace al pie de la letra al compilar nuestro archivo SWF.
Que tipo de archivos podemos incluir o incrustar? Bien real mente cualquier archivo o formato empezando desde Fonts hasta mp3, Video, Xml o otro tipos de datos…

Ejemplo de uso manera 1:
… esta manera seria la mas correcta, esta opción es mas usada en Flex ya que si se usaría la manera nº2 os saldría error al compilar.
Archivo “EmbedObj.as”

package
{
	import flash.utils.ByteArray;
	
	//en la variable source asignamos la ruta hasta nuestro modelo 3D
	[Embed(source="3Dobj.DAE", mimeType="application/octet-stream")]
	
	public class EmbedObj extends ByteArray
	{	
		public function EmbedObj():void
		{
			return;
		}
	}
}

Archivo “embed.as”

package {
	
	import flash.events.*;
	import flash.utils.ByteArray;
	
	import org.papervision3d.objects.parsers.DAE;
	import org.papervision3d.view.BasicView;
	
	//Configuración de nuestro SWF desde Clase AS3
	[SWF(width="500", height="400", backgroundColor="#ffffff", frameRate="60")]
	
	public class embed extends BasicView
	{
		//declaramos las variables
		private var collada:DAE;
		private var modelo:EmbedObj;
		
		public function embed():void
		{
			addEventListener(Event.ADDED_TO_STAGE, dm211_initStage);
			//____________________________________________________SET DEBUG CAMERA
			//interrumpimos el arranque básico de la clase BasicView y la reemplazamos con estos parámetros                         
			super(stage.stageWidth, stage.stageHeight, true, true, "Debug");
		}
		
		private function dm211_initStage(event:Event):void{
			removeEventListener(Event.ADDED_TO_STAGE, dm211_initStage); 
			//____________________________________________________COLLADA CALL
			//invocamos nuestro modelo 3D
			var _loc:ByteArray = new EmbedObj();
			collada = new DAE( false );
			//cargamos el contenido Embed		
			collada.load( _loc );	
			//añadimos el elemento en el Stage
			scene.addChild( collada );
			//____________________________________________________START RENDERING
			startRendering();
		}
	}
}

Resultado:[swf]/wp-content/uploads/2009/11/embed_m1.swf, 550, 400 [/swf]

Ejemplo de uso manera 2:
Aquí asignamos directamente la clase al Embed, en vez de crear un archivo para ello.
Archivo “embed.as”

package {
	
	import flash.events.*;
	import flash.utils.ByteArray;
	
	import org.papervision3d.objects.parsers.DAE;
	import org.papervision3d.view.BasicView;
	
	//Configuración de nuestro SWF desde Clase AS3
	[SWF(width="500", height="400", backgroundColor="#ffffff", frameRate="60")]
	
	public class embed extends BasicView
	{
		//declaramos las variables
		private var collada:DAE;
		
		//incluimos el Embed y le asignamos una Clase
		[Embed(source="3Dobj.DAE", mimeType="application/octet-stream")]
		private var modelo:Class;
		
		public function embed():void
		{
			addEventListener(Event.ADDED_TO_STAGE, dm211_initStage);
			//____________________________________________________SET DEBUG CAMERA
			//interrumpimos el arranque básico de la clase BasicView y la reemplazamos con estos parámetros                         
			super(stage.stageWidth, stage.stageHeight, true, true, "Debug");
		}
		
		private function dm211_initStage(event:Event):void{
			removeEventListener(Event.ADDED_TO_STAGE, dm211_initStage); 
			//____________________________________________________COLLADA CALL
			//invocamos nuestro modelo 3D y cargamos la clase como ByteArray
			var _loc:ByteArray = new modelo() as ByteArray;
			collada = new DAE( false );
			//cargamos el contenido Embed		
			collada.load( _loc );	
			//añadimos el elemento en el Stage
			scene.addChild( collada );
			//____________________________________________________START RENDERING
			startRendering();
		}
	}
}

Resultado:[swf]/wp-content/uploads/2009/11/embed_m2.swf, 550, 400 [/swf]

Conclusión: Gracias a Embed podemos incluir datos que no aparecerán con Decompiler, aunque el archivo final pese algo mas…

Vox (PV3D Pixel3D – Processing)

Hace ya un tiempo se han publicado los Archivos Open Source del proyecto del video clip RADIOHEAD House o_f Cards que fue realizado con herramientas Open Source como Lenguaje

Processing es un lenguaje y entorno de programación de código abierto basado en Java, de fácil utilización, y que sirve como medio para la enseñanza y producción de proyectos multimedia e interactivos de diseño digital. Fue iniciado por Ben Fry y Casey Reas a partir de reflexiones en el Aesthetics and Computation Group del MIT Media Lab.

Processing es desarrollado por artistas y diseñadores como una herramienta alternativa al software propietario. Puede ser utilizado tanto para aplicaciones locales así como aplicaciones para la web (Applets).

Al estar basado en Java, puede heredar todas sus funcionalidades, convirtiéndose en una herramienta poderosa a la hora de encarar proyectos complejos.

El ví­deo clip fue grabado con unas cameras y sensores especiales que emiten y vuelven a captar ultrasonido, registrando todo su alrededor. Si nos descargamos los archivos zip de la página nos encontramos con unos dos-mil archivos de texto (.csv). Bien cada archivos corresponde a un fotograma que se reproduce a unos (30 fps). Dentro de cada archivo encontramos unos números separados por comas, cada número corresponde a coordenadas X,Y,Z y Intensidad de cada Pixel que final mente forma una imagen en entorno 3D.

Una vez interpretado todos los coordenadas aparece una imágen como acontinuación…

[SWF]/wp-content/uploads/2009/08/vox.swf, 400, 400[/SWF]

El proyecto se ha elaborado con Tecnologia Flash Action Script 3 (AS3) y con PaperVision3D que me servio como entorno 3D para interpretar coordenadas 3D.

Seguir leyendo Vox (PV3D Pixel3D – Processing)