February 17th, 2008

Hacia mediados del año pasado escribí un post acerca de la Beta Pública de Papervision3d , ahora es el turno para Paradox Engine, un motor gráfico 3d orientado a FPS construido con base en Papervision3d. El motor también esta soportado sobre Collada para la carga de los niveles, que son definidos a manera de cuartos con unos pocos elementos adicionales como posibilidad de agregar skybox. Por ahora el motor no soporta objetos dinámicos y las escenas tienden a ser simples, por los problemas relacionados con el rendimiento.

Por ahora se encuentra en una fase muy temprana pero ya es posible observar un par de demos en aqui

Paradox Flash Demo 1 Paradox Engine en Flash

Papervision ha seguido evolucionando y ahora cuenta con branch projects como Papervision 2.0 effect que ha sido utilizada en maravillas como VeryWell, donde la interfaz es una mezcla de 2d y 3d con efectos muy logrados.

February 11th, 2008

GLee es una librería que permite cargar extensiones de OpenGL de manera fácil y segura sin necesidad de escribir mucho código, es distribuida bajo una licencia modificada BSD. La librería es multiplataforma, funciona sobre Windows, Linux, OS-X, FreeBSD y también con algunos sistemas Unix que usen X-Windows. Hasta la versión actual permite el uso de 362 extensiones, incluyendo las creadas para la generación 8 de Nvidia GeForce, lo que garantiza que sola las muy "exóticas" extensiones esten por fuera. Un dato interesante es que también permite chequear la versión del driver de OpenGL instalado por ejemplo:

C++:
  1. #include <gl\GLee.h>   
  2. ...
  3. if (GLEE_VERSION_2_1) 
  4. {
  5.       //Llamado seguro de funciones spec 2.1
  6. }
  7. else
  8. {
  9.      //Configuración mas baja o mensaje a usuario
  10. }

De manera similar para comprobar la disponibilidad de una extensión:

C++:
  1. #include <gl\GLee.h>   
  2. ...
  3. if (GLEE_SGIS_MULTISAMPLE) 
  4. {
  5.       //hora de antialias
  6. }
  7. else
  8. {
  9.      //bordes escalonados y menos proceso
  10. }

Una característica importante de esta librería es que trabaja en modo perezoso, así que la disponibilidad de las extensiones solo se verifica la primera que se llama una determinada extensión y es verificada para esa extensión únicamente. La última versión de la librería puede ser descargada desde http://www.elf-stone.com/glee.php , sin duda vale la pena utilizarla si se va a trabajar con extensiones, que son al mismo tiempo la característica "brillante" y engorrosa de OpenGL.

March 11th, 2007

Nvidia es uno de los proveedores de chip gráficos mas grandes del momento, con orientación principal hacia la industria del entretenimiento y como tal la de los videojuegos. En ese camino Nvidia ofrece continuamente un conjunto de herramientas y demostraciones de lo que se puede lograr con las tarjetas que ellos potencian (evidentemente) y de eso se trata el Nvidia SDk, de un conjunto de ejemplos que ilustran técnicas para lograr efectos espectaculares con un gpu, bien sea a través de de OpenGL o DirectX.

El Nvidia SDK sirve de referencia para aquellos que quieran sacar el máximo rendimiento de la tarjeta, ya que posee un conjunto vasto de ejemplos documentados, con sus respectivos códigos y ejecutables que van desde lo mas "básico", como es texturas, sprites, glow, bump mapping y suavizado por normales, hasta algunos como Dynamic Ambient Occlusion, HDR Rendering y Realtime Raytraced Refraction, todo esto vía Hardware.

En el marco del GDC 2007 se han liberado nuevas versiones no solo de este, sino de sus otras utilidades: FX Composer 2, Shader Library, SDK 10, GPU-Accelerated Texture Tools, PerfHUD 5 y ShaderPerf 2. En el caso particular del SDK 10, el nuevo enfoque es hacia las tarjetas de generación 8 (Nvidia 8800) y la llegada de DirectX 10 para Windows Vista.

Estos son algunos Screenshots de los demos que mas me llamaron la atención:

AmbientOcclusionHSM AmbientOclussion AnisotropicLighting BumpShinny HardwareShadowMapHDRendering Mandelbrot NormalizationHeristics SimpleSoftShadows SuperFlow

Las versiones de este SDK se pueden descargar en la página de Nvidia Developer o directamente en Nvidia SDK 9 y Nvidia SDK 10

November 18th, 2006

physx demo

Conocido antes como NovodeX, PhysX es un Middleware SDK que aliviana la carga de los programadores, ofreciendo una simulación física en tiempo real con características como vehículos, interacciones de cuerpo rígido, líquidos, rag doll, ropa y efectos de cuerpo suave. Actualmente AGEIA afirma tener mas de 60 equipos de desarrollo en la industria y 100 juegos realizados gracias a este SDK, también Sony licenció el uso de este para su consola PS3

Con el anuncio de "Free PhysX (2.6.2) for all!!" en los foros públicos en la página de AGEIA se ha abierto la posibilidad de utilizar este SDK de simulación física como parte de proyectos comerciales y no comerciales de manera gratuita, lo único que hay que hacer es ir a la página de desarrolladores de AGEIA, registrarse y acogerse al EULA para poder descargar los paquetes de desarrollo.

Una vez instalado los paquetes es posible utilizar las librerías del PhysX, observar una buena cantidad de ejemplos, acceder a la documentación (bastante extensa) y realizar un curso de entrenamiento que incluye documentos, proyectos en Visual Studio y ejecutables (adicionales a los demos). Para utilizar el SDK y visualizar los ejemplos no es necesario tener instalada una tarjeta de aceleración de física AGEIA, ya que el driver (es necesario instalarlo) provee una implementación de software en la que se puede ejecutar el entorno. Aún así, para ciertas aplicaciones como fluidos es necesario el Hardware especializado porque el driver no implementa estas funciones, debido a la gran carga de cálculo que esto supone.

Si se quiere desarrollar para otras plataformas como por ejemplo PS3 o orientado hacia la utilización del Hardware acelerador de físicas, que no está cubierto por el EULA de descarga en la página, es necesario adquirir otro tipo de licencia con AGEIA.

October 1st, 2006

Bullet Logo
Bullet es una librería de detección de colisiones y simulación de dinámicas de cuerpo rígido "Open Source" (código abierto) y "free for commercial use" (libre para uso comercial), que tiene ultimamente un desarrollo activo y ha destacado en presentaciones como el siggraph y gdc como una alternativa viable a los motores comerciales (physics, Havok,nv Physics Engine) y al completo pero complejo ODE (que con el tiempo ha ido quedando obsoleto).

Alguna de las ventajas de Bullet son:

- Escrita en c++ y totalmente orientada a objetos
- El proceso de incorporar la librería es simple con respecto a otras.
- Frecuentemente actualizada.
- Integración con herramientas vía Collada.
- Código abierto y gratis para aplicaciones comerciales.
- Eficiente.

Entre sus desventajas se encuentran:

- Solo sirve para detección de colisiones y dinámicas de cuerpo rígido.
- Poca documentación por ahora.
- La actualización continua genera cambios en el código, a nivel de programador usuario.

Si bien este paquete no es tan completo como el ODE, Newton o Tokamak, si se actualiza mas a menudo, es mas modular y simple que estos. Aún así, para desarrollos que requieran ragdolls, fluidos o complicadas restricciones, es mejor acudir a librerías con mas antiguedad o comerciales.