I’m on REC Zine

Solo hace unos días que salio el tercer número de la revista REC Zine, es una revista digital que trata o más bien recopila a gente de todo el mundo y de todos los ámbitos.

rec zine

http://reccomunidad.com/

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:

This movie requires Flash Player 10

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:

This movie requires Flash Player 10

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

El Convento Maquetación CSS TIME LAPSE

Un pequeño vídeo de proceso de maquetación HTML y CSS1,2
Web soporta siguientes navegadores: IE6-8, FireFox, Chrome 1,2, Opera 8,9,10, Safari

Web disponible en: http://www.proyectosculturales.com/elconvento2/

Líneas flexibles y Repulsion (As3)

This movie requires Flash Player 10

Descargar Source

Read the rest of this entry »

Dm211 As3 Libreria de Classes en Google Code

dm211_aviableOnGoogleCode

Ya están disponibles todas las Classes creadas en Action Script 3 (Adobe Flash/Flex/Flash Builer), en Google Code.

FL10 2D vs. PV3D (Primer Test)

Después de que el Mr. Doob y Román Cortés han publicado el Código Abierto de su proyecto. Que básicamente se trata de renderizar pixel a pixel las coordenadas X,Y y Z en entorno Flash.

Direcciones de interes:
http://mrdoob.com/blog/post/571
http://www.romancortes.com/blog/voxel-head-in-flash/
http://mrdoob.com/79/Voxel_Head

He decidido seguir el experimento. Para ello he creado un simple código para convertir el archivo .v con compression “Zlib” a simple tabla de coordenadas sin ninguna compresión.

v2csv

Descargar Air Converter c2csv, Descargar Proyecto comprimido en Zip

Después de la conversión de archivos toca representar los resultados obtenidos. He usado misma Tecnologia “Flash”  pero con ligera molificación en código, ya que en el proyecto Voxel_Head el Mr. Doob ha usado cálculos matemáticos para obtener el radio de una esfera imaginatoria, y luego ha colocado los pixels correspondientes alrededor de ella. Mi código interpreta las coordenadas directamente en el espacio 3D gracias al componente PaperVison3D. Final mente he obtenido un resultados algo penoso. Ya que con las mismas condiciones que el Voxel_Head, solo he conseguido renderizar con una media de 5fps – 7fps.

vox_test_pv3d_v0001_3
vox_test_pv3d_v0001_2
vox_test_pv3d_v0001_1
Descargar Proyecto en Zip

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…

This movie requires Flash Player 10

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.

Read the rest of this entry »

Certificado Escolar y Titulo A.E.C.I.E.

Por fin ya me llego mi diplomatura de la A.E.C.I.E. (Asociación Española de Centros de Enseñanza de Informática).

Como añadir, modificar o reemplazar UVW en ZBrush

En el modelado 3D siempre debe de haber un orden de pasos a seguir, al contrario haremos trabajo doble o incluso varias veces… Todo depende cuanto cabezudos sois :)

Pondré dos ejemplos de pasos que finalmente nos llevaran al mismo sitio.

1) Creamos un modelo low poly en vuestro programa favorito ya sea (Max,Maya,Modo, etc) no tiene importancia, y lo exportáis a ZBrush 3.1. Una vez dentro trabajamos el modelo con todos los detalles posibles. Evidente mente ya os habeis gastado unas horas o unos días de vuestro tiempo y esfuerzo. Y es cuando os dais cuenta que, antes de importar el objeto no habeis hecho el UVW Unwrap :( aquí es donde entra desaparición y perdida de ganas a seguir con el modelo y con 3D en general.

2) Creais un modelo directa mente en el ZBrush a base de sheips y objetos básicos. ZBrush por defecto solo puede hacer UV mapping de un par de maneras básicas, cuales en nuestro caso no nos servirán para modelos mas complejos.

Bien en este punto coinciden los dos ejemplos expuestos: ¿Donde, como asigno o modifico UV maps?

No hace falta buscar ya que ZBrush no tiene ningun modo ni editor para tal.

Entonces surge siguiente pregunta como los creo? Bien aquí es donde empieza todo el follon.

ZBrushLogo_zbrush
• Dentro de la solapa Texture del menu de la derecha activamos la tecla EnableUV.zbrushUv_1_uvEnable

• En solapa Geometry bajamos las SDiv (Sub Division) a 1, osea a nivel básico Low Poly.

zbrushUv_2_dwnSDiv

• Tambien activamos el buton StoreMT (Store MorphTarget) de la solapa Morph Target. Esta opción sirve mas que nada para fijar la pozición del objeto.

zbrushUv_3_Morph
• Y finalmente le damos al botón Export de la primera solapa Tools. Exportamos como formato .OBJ ya que es un formato bastante utilizado.

zbrushUv_4_export

NOTA: Muy Importante! No modificar los vertices ni la estructura en general del modelo!

Método con el ModoLogo_modo
Abrimos Modo, en el menú de arriba clicamos File y Import.
Luego clicamos en la solapa UV que se encuentra justo encima del viewport.

modo1_import
modo2_uvSolapa

En el menú de la derecha aparecerá una especie de menú des plegable donde habrá objeto Mesh , Directional Light, Camera y una carpeta Default dentro del cual habrá otro objeto Mesh(2). Bien arrastramos este Mesh(2) encima del Mesh y borramos la carpeta Default. Apretamos sobre Mesh(2), ya que sera el objeto con cual vamos a trabajar.

modo3_1

Apretamos al botón Edges y seleccionamos las lineas que serán el corte de UVs.

modo4_edges

Una vez teniendo seleccionado las lineas deseadas, nos dirigimos a menú de arriba Texture -> UV Tools -> Unwrap Tool , con el click izquierdo sobre la ventna de UV abierta anteriormente y arrastramos hacia izquierda o derecha, nos aparecerá el recorte  de nuestro modelo.

modo5_uvw
modo5_1

En cuando acabamos de modificar el UV map, nos dirigimos al menú Files y apretamos sobre  ExportAs.

Nos aparecerá una ventana de información “OBJ only supports geometry and simple texturing. Partial UVs are omitted.” Presionamos sobre el buton Save.

modo6_1

Método con el 3DsMax 2010Logo_MAx
· Abrimos Max2010, nos dirigimos al menú y seleccionamos Import, en la siguiente ventana que nos aparecerá (OBJ Import Options), seleccionamos las siguientes casillas: Reset scene, Import as Editable Poly

Geometry: Flip ZY-axis, Texture coordinates, Smoothing groups
Normals: Import from file
Material: Import materials, Import into Mat-Editor

max1_import
max1_1

En el lado derecho, dentro de la segunda solapa apretamos sobre Editable Poly y seleccionamos nuevo modificador (Unwrap UVW).

max2_2

Una vez acabamos de modificar el mapa, colapsamos el Unwrap UVW con botón derecho del ratón.

max3_colapse all

De nuevo hacemos  File -> Export -> Export Seleceted del objeto ya modificado. El cual final mente importaremos en el ZBrush.

max4_export

ZBrushLogo_zbrush
Aquí vuelve a coincidir los dos ejemplos expuestos anteriormente. Lo primero de todo importamos el modelo modificado.

modo-z import

Para comprobar que real mente los UVs se han modificado nos dirigimos a la solapa Texture y apretamos al botón Uv Check (Uv Check Overlapping), también podéis apretar el botón de al lado Uv>Txr (Uv to Texture) que genera una textura de colores al cual la asigna al modelo

modo-z import3
modo-z import4

Si el modelo se ha desplazado hacia algún lado nos dirigimos a la solapa Morph Target y apretamos sobre el botón Switch. Automaticamente el modelo vuelve a su posicion original al cual lo hemos tenido antes de exportar.