jueves, 27 de enero de 2005

El CVS ya me funciona, e IO-3D 0.1.1

Bueno, después de tanto tiempo, ya he conseguido que el servidor CVS me deje hacer un commit. El origen del problema fue que hubo que cambiar el host. Yo lo actualicé en el cuadro de login, con lo cual me dejaba hacerlo sin problemas, pero olvidé que había que ir directorio por directorio y cambiarlo en cada fichero CVS\Root. Con ésto, ya está funcionando sin problemas.

Respecto a IO-3D, ya está subida la versión 0.1.1, con proyección a memoria de los archivos. Se trata del tag IO3D_0-1-1 en el repositorio, que como siempre puede accederse aqui: IO-3D, repositorio.

Un saludo.

jueves, 20 de enero de 2005

ODE (aka Open Dynamics Engine)

Estaba vagando hoy por Internet cuando me ha venido a la cabeza un tema que siempre he tenido muy descuidado: la física en la simulaciones por ordenador. Tras mucho meditarlo (tal vez no tanto), decidí descargar y aprender a manejar ODE, un motor de física de cuerpos rígidos, con diversas opciones de articulación, uso intuitivo y detección de colisiones incorporada.

Antes de descargarlo me estuve mirando un poco el manual, y los juegos en los que se ha utilizado. Todo ello me llenó de ganas de probarlo, así que corrí raudo a descargarlo y descomprimirlo, llevandome una desagradable sorpresa...

No hay binarios, sólo código.

De eso se trata, está bajo licencia GNU/LGPL y BSD, ¿no? Pues a mi no me gusta no tener los binarios, el "compile it yourself". Viendo Linux, en donde todo lo he de instalar así, no me gusta. Debo de ser la persona menos afortunada que existe con este sistema, ya que no hay vez que haya ejecutado un configure previo al make en la que no me haya salido un error indicando que debo actualizar algo, y ese algo implica algo más, que implica a lo primero. Al final, la mitad del sistema no funciona, y todo para probar la última versión 0.2.543.lo_que_sea_pre_alfa de cualquier cosa (que además, van y la llaman Stable).

Volviendo a ODE, como decía, sólo estaba el código fuente. ¿Cierto? ¡No! También estaba el configure y los makefiles propios para gcc, mingw y cygwin. Pero, ¿qué es lo que vieron mis ojos, casi con lágrimas de alegría? ¡Una carpeta llamada vc6! Raudo, entré en ella. Allí estaban los archivos de proyecto necesarios para construir un dll con el motor, o un lib estático. También para construir todos los ejemplos. Lo abrí con el VS7 y le di a Generar Solución. En pocos segundos tenía todos los binarios construidos, y todo funcionando. Errores: 0. Peticiones de actualización de librerías: 0.

Ojalá todos los proyectos que sólo distribuyen el código fuente me fueran así de bien. Claro, que éste es el único de este estilo que he probado en Windows.

He observado que en muchos proyectos de este estilo reusan dar soporte al compilador de Microsoft, aun siendo el más utilizado a nivel profesional. Allá ellos, yo me quedo con ODE.

Mis más sinceras felicitaciones al autor.


PD: El WinCVS sigue sin dejarme hacer un commit, así que sigo sin poder subir la última versión de IO-3D. Según Pablo, el que se entiende con los chanchullos de redes, comunicaciones y Linux, la configuración del servidor es la misma y tengo los permisos adecuados, así que la culpa debe ser mía. ¿Qué habré tocado yo? Si sólo instalé el SP2 del WinXP Pro...

miércoles, 12 de enero de 2005

Los increíbles efectos de "Los Increíbles"

El otro día vi Los Increíbles y quedé maravillado por dos cosas: el pelo y la vegetación.

La simulación del pelo de los personajes está muy conseguida. El movimiento es muy real, los personajes se despeinan, los matices y brillo anisotrópico perfectos, las colisiones, etc. Excepto cuando aparecen en el agua, que da la sensación de plástico. Me trae ésto a la memoria la película Final Fantasy, en el que el pelo de los personajes era rígido y permanecía inalterable (si lo hubieran hecho con actores habrían tenido que emplear toneladas de laca). Desde luego, la simulación de pelo ha evolucionado mucho estos años.

Por otro lado está la veetación, principalmente la de la isla en la que apresan a Mr. Increíble. Qué decir, aparte de que es una maravilla. No alcanzo a apreciar con las escenas en movimiento si es toda geometría, o el follaje está conseguido con texturas con mapas de opacidad, pero sea lo que sea está muy bien. Por cierto, que el agua está mejor que la que aparece en Sky Captain (aparece en una escena con un mapa de desplazamiento de lástima), y eso que en esta última se busca imagen realista.

Por último, pongo el nick que se ha puesto un amigo en el messenger, que ocasionó que me estuviera un rato riendo:
In the land of the X-eyed, X+1-eyed is king; where x=0

He dicho.

martes, 4 de enero de 2005

Feliz año nuevo y otras novedades

Como diría Ramón García (casi obligado por la Obregón), ¡Feliz 2005!

IO-3D

A parte de esa pequeña novedad (al fin y al cabo, todos los años tenemos cambio de año) la versión 0.1.1 de IO-3D está casi lista. En los últimos tiempos no le he dedicado mucho, pero parece que vuelve a marchar. Ya me he olvidado de la reproducción de MIDIs en el PocketPC, o al menos por el momento, ya que no conseguí reproducir ni uno usando el API de bajo nivel de Windows Mobile 2003 (pero de bajo, bajo nivel, que no hay ni mci, un poco más y te tienes que dar con las interrupciones). Si veo al final que voy sobrado de tiempo (permitidme que me ría) me pondré de nuevo a ello.

Si no hay MIDI, ¿qué hay en 0.1.1? Bien, visto el tiempo de carga que había (3-5 minutos para cargar 100 Kb) decidí reimplementar parte de la clase File, para que se proyectara en memoria el fichero entero con una sola lectura, y así poder leer byte a byte todas las veces que quisiera. Por supuesto, sin cambiar la interfaz pública de la clase, simplemente añadiendo un nuevo flag a los modos de apertura (no quería que dejara de funcionar de golpe todo el código que accede a ficheros). Con ésto, el tiempo de carga completo de la aplicación ha bajado a unos 2 segundos (yup!).

Por otro lado, he arreglado un fallo bastante gordote en el código de sonido. Para resumir, digamos que si me daba por reproducir una sola vez un único sonido antes de nada, al acabar obteniamos una violación de acceso. Ya no es problema.

Por último el CVS no me deja hacer un commit, así que la actualización no está disponible para descargar, a ver si hablo con el administrador.

Para la siguiente versión habrá sistema de menús (tengo planeado algo bastante vistoso, pero ojo, recordad que rasterizo por software, e incluso mis funciones pueden ser lentas :P).

Un saludo.