domingo, 13 de abril de 2008

precomputed radiance transfer!!!!!!!......sniff, sniff

Ouuuuuuuuu!!!!!!! yeah baby!!!!!!. Se acaba de implementar el prtEngine de DX en el framework para la carga de datos precomputados para toques de diffuse lighting como subsurface scatering (cuando la luz traspasa objetos muy delgados), occlusion term( cuando un objeto es bloqueado por otro, consecuentemente generando una sombra), self-shadowing(cuando se generan sombras en un objeto con zonas ocluidas en sí) y por supuesto, radiance transfer(transferencia o influencia de luz sobre otros objetos!!!

Ejemplos de subsurface scatering en el framework:

Como puedes observar la luz es absorbida por el modelo. Este es el modelo original:


Posiblemente se pueda llegar de muchas maneras a este ejemplo, pero no con lo que sigue:


Lo que ahora se observa es la parte desde atras del modelo y como se puede apreciar, la luz que se absorbe en las "orejas" se puede apreciar aun y cuando el modelo es un oclusor de la luz!!!



Una observacion cuidadosa tambien revela la capacidad del engine para computar zonas ocluyentes de luz(zonas en donde no debería haber luz simplemente porque la "tapan"). En la imagen de arriba se puede apreciar que aun y cuando la luz esta de frente al modelo, esta no llega a la zona interior de la boca y aun poco de los ojos.


La imagen de arriba claramente muestra la capacidad de generar softshadows cuando un modelo ocluye a otro. Podemos ver que las rocas flotantes generan una sombra en el piso del modelo(al igual que los pilares, aunque no se aprecia mucho debido a la direccion de la luz).
La imagen siguiente muestra la misma escena pero con 2 luces:
Ahora se puede apreciar mejor la generacion de sombras suaves o softshadows.

En la imagen de arriba se puede apreciar un ejemplo característoc de zonas ocluidas por modelo.
Aunque la fuente de luz proviene de la esquina inferior izquierda, solo el primer pilar recibe la intensidad entera, pero no sucede lo mismo con los pilares colocados de su lado.

Actualmente el framework carga los archivos de datos precomputados. Esto porque actualmente hay una herramienta en el sdk de dx que permite computar datos de transferencia.
Claro, solo es cuestion de tiempo para que se incluya en el framework y no haya necesidad de usar la herramienta, pero se hizo así porque los datos se interpretan más fácil cargandolos y visualizándolos que calculándose y guardados :S.

lunes, 7 de abril de 2008

hdr lightning + light adaptation

Oh, checa la nueva caracteristica del framework: light adaptation.

Como puedes observar, la primera (top) imagen esta "quemada" por la naturaleza de haberse expuesto a un emisor de luz que despide mucha energia (despues de estar en un lugar donde no habia tanta luz). En la imagen que le sigue, la camara se "adapta" a las condiciones (situacion similar cuando sales del cine en una tarde soleada o cuando entras y sales de un tunel).

Posiblemente suba un video ya que es más significativo.

viernes, 4 de abril de 2008

hdr lightning + tone mapping

En esta entrega el framework incorpora la capacidad para reproducir imagenes hdr agregandole tone mapping......sip, bla bla bla bla. Estas son algunas imagenes de muestra al correr la aplicacion:
Este tipo de efectos se reproducen en videojuegos de proxima generacion como far cry, halo 2, halo 3, half life: lost coast entre otros.
Claro, el efecto aun no se acopla a cada situacion en la escena, pero en la siguiente entrega se espera que este listo.

martes, 1 de abril de 2008

Content from file

Como todo editor de 3d, la aplicacion ahora esta en el proceso de implmentar la lectura de contenido desde un archivo. El formato actual es xml, aunque en futuro pueda implementar otros formatos.

La imagen de arriba pertence a la ejecucion del framework del que hace uso el editor.
En el post pasado solo inclui la salida del editor cuando presionabas el boton salvar.
Ahora en esta entrega se carga el contenido del archivo y se refleja en la carga de los objetos de la escena.

El contenido de tal archivo es algo similar a:

Claro, esta entrega no es definitiva, sino que se tiene pensado extender complejamente la estructura para que pueda albergar (jajajaja, albergar.....) elementos como scripts de AI, mas de 1 escena y configuracion del dispositivo.

jueves, 13 de marzo de 2008

Exporting data......!!!!!!!!:D:D:D:D


Por fin, ya se vé tierra firme!....al menos un poco, y esque acabo de empezar a estructurar la salida de la exportación de datos para el framework de graficos para contenido que ando desarrollando. Posiblemente esté en pañales, pero me cae que voy a empezar a probar con el framework a ver que tal le vá con xml.
Y posiblemente ese sea todo un detalle ya que me encuentro en la etapa máaaas aburrida de la aplicación: exportación de datos a travez de xml.



La imagen de arriba es producto
de un clicaso al boton Save
de la barra standard
de herramientas de esta
instancia:














Aunque con un millon de desperfectos, pero espero y la próxima ya pueda cargar un archivo exportado de la aplicación hacia el framework.

miércoles, 5 de marzo de 2008

Terrain blend

En la siguiente entrega acabo de mejorar el sistema de efectos, ya que no será necesario tanto cambio en momento de compilación, sino en runtime, esto es, solo modificar el o los scripts de efectos para que tengan efecto en el pipeline de dx. Tambien el sistema de efectos es independiente de o los objetos a los cuales los apliques, solo que aun no he puesto la interfaz para aplicarlos, así que será hasta la proxima. Por ahora solo pongo un terreno que ha sido mezclado con 3 texturas mediante un texture blend map.

lunes, 3 de marzo de 2008

Skybox added


Con la nueva entrega, la aplicación ya tiene integrada la capcidad de añadir skybox a la escena.
Aun ando trabajando en el script engine de la aplicación, pero creo que tardará un rato.
Por lo pronto espero que para la próxima entrega se tenga un set enriquecido de objetos geométricos para empezar a picar.

sábado, 1 de marzo de 2008

Terrain generation baby


Sip, la generación de terreno ya está disponible en la entrega. Por ahora solo genera terreno a partir de archivos raw(bytes tal y cual). En el futuro espero añadir generación a partir de otro tipo de formato o archivo.
Por cierto, el terreno generado tiene una textura en formato fp64 y dibujado con 1 luz y diffuse color....bonito.

jueves, 28 de febrero de 2008

HDR Formats



Bueno, acabo de incluir herramientas a la aplicación, entre las cules están incluir una caja, una esfera, un tri, un quad, y la opción de agregarles texturas con formato floating point.

La imagen a la derecha muestra un quad con una textura al momento en que una luz no está totalmente perpendicular a su trayectoria.









En la imagen de la izquierda se aprecia el efecto (un poco más realístico) de los formatos de alta intensidad cuando se combinan con una fuente de luz y su material sobrepasa el rango de baja intensidad(>1.0).
Este tipo de efectos se utiliza principalmente en los videojuegos de próxima generación, tales como Half-Life 2(R), Halo2(R) y Halo 3(R) entre otros.
En la próxima entrega espero incluir la generación de terreno y su edición.

miércoles, 13 de febrero de 2008

D3DEditor


Bueno, despues de un buen eh aquí la primera impresion del editor que ando desarrollando (no es mucho....por ahora). El objetivo del editor es la creación y administración de contenido para escenas de videojuegos o alguna aplicación específica. Por ahora, solo se pueden añadir StaticMeshes, pero en el siguiente avance espero y ya se puedan añadir AnimatedMeshes y combinar una serie de efectos especiales.


sábado, 19 de enero de 2008

Malvenidos

Que tal, sean bienvenidos al supuesto blog de programacion de videojuegos escrito por.....mi, acertaste Einstein. Como el blog acaba de ser creado, aun estoy redactando los articulos acerca de mi trabajo. Asi que no desesperes y por mientras sigue buscando porno.