29 de septiembre de 2008

Ya queda menos...

Para que empiece lo bueno. Creo que el bajón de novedades y trabajo en general se ha notado (el trabajo no remunerado, por supuesto), y no estoy seguro de poder recuperar completamente el ritmo en unos días... Después de las vacaciones la carga de curro ha sido bastante espectacular, y la próxima semana ya comienza el master de videojuegos que cursaré durante el resto del año y gran parte del que viene, así que voy a estar realmente ocupado... En fin, a ver qué tal lo llevo, pero más vale que disfrute estos días "tranquilos" porque lo que se avecina va a ser durillo.

Aún así ha habido algunas novedades, como que hace unos días salió la versión beta de XNA 3.0, con interesantes novedades como un soporte mucho más currado del formato FBX (ahora acepta múltiples texturas por modelo, por ejemplo) y nuevos añadidos a las clases de tratamiento de sonido que se presentaron en la CTP. Una de las cosas más interesantes es la función GetVisualizationData, que permite obtener en tiempo real información de la frecuencia y los samples de la música que esté sonando en ese momento desde el nuevo MediaPlayer (la clase del framework, no el programa obviamente xD). Hace un par de días me puse 5 minutos y me monté una chorrada como ésta:

En realidad no es nada, simplemente he puesto de manera visual lo que devuelve esta función, pero sería muy interesante estudiar qué cosas se podrían llegar a hacer (en concreto juegos que se adapten a la música, que era algo que he querido probar desde hace mucho tiempo). Yo no entiendo mucho de sonido, pero si algun día tengo un rato (sigh) le echaré un vistazo.

11 de septiembre de 2008

Forzando la máquina

Estos han sido unos días duros y tremendamente divertidos a la vez. La semana que viene pillo vacaciones (esta vez un poco más decentes, no cuatro míseros días) y en el curro se están encargando de recordarme cada día porqué debo tener ganas de pillarlas. Y claro, después de estar toda la semana encerrado te dan ganas de liarla por ahí y olvidarte un poco de todo, así que el fin de semana pasado me fui a las fiestas de Barbastro (que por cierto son tremendas, nadie debería perdérselas) y ahora en vacaciones me iré una semanita a Suecia a pasar frío y estar bien lejos.

Pero bueno, no he estado completamente parado. He afinado un poco el tema de las nubes (intentaré subirlo antes de irme, quizás mañana o pasado) y he tocado alguna cosilla de Arles aquí y allá. Javi ha mejorado mucho el tema de la gestión de la escena y yo he añadido unas estadísticas de rendimiento para el render del editor, aparte de la posibilidad de quitar la limitación de frames por segundo típica de XNA.


Como Rubén está terminando su juego para el BDP y yo me piro por ahí, este tema estará bastante parado un tiempo, pero ya se irán haciendo cosas.

4 de septiembre de 2008

¿ A qué huelen las nubes?

A Perlin noise! Ya están medio terminadas, y este es el aspecto que lucen:



Se puede modificar la velocidad de las nubes, su densidad, la cantidad de superficie que ocupan... y próximamente la dirección.

Al principio iba a usar simplex noise (una modificación del perlin noise "clásico" que en teoría da más calidad de imagen), pero el shader era algo más lento y personalmente me gustaba menos cómo quedaba (en la imagen del post anterior se ve este tipo de función). Total, que se ha quedado el perlin de toda la vida y ya da el resultado deseado.

También había pensado calcular un normal map a partir del "heightmap" que se genera y así iluminar de forma más molona las nubes, pero por ahora lo he descartado porque no sé si valdrá la pena la pérdida de rendimiento que se sufriría.

Lo siguiente debería ser algo más volumétrico...

2 de septiembre de 2008

Presentando Arles

Alguna vez lo he comentado, pero hasta ahora no había enseñado (y en la página del proyecto en Google Code tampoco se ve nada). Éste es el aspecto que tiene actualmente el editor de terrenos en el que están trabajando los coordinadores de XNACommunity, Arles:


Por ahora todo es muy, muy básico, pero hay algunas cosas de interfaz interesantes ya implementadas (como la posibilidad de relizar 'Deshacer'/'Rehacer') y ya está prácticamente integrado del todo mi último skydome con atmospheric scattering.

Se avanza poco a poco porque lo hacemos en los ratos libres (que por ejemplo en mi caso son escasos), pero seguro que acaba siendo algo interesante. En la parte derecha del blog hay un link a la web del proyecto, donde ya se puede consultar el código y trastear con él.

Y aprovechando que se habla de Arles, he estado un par de días mirando una manera sencilla de simular otro efecto atmosférico, las nubes. La idea era usar un método sencillo y sobre todo rápido para representarlas sin entrar en soluciones mucho más costosas como nubes volumétricas y cosas por el estilo. Un primer intento ha dado este resultado:


Es una primera prueba y no he "tuneado" valores, pero aunque no se ve en la foto, en movimiento queda bastante curioso. Lo malo es que he notado bastante la diferencia de rendimiento, así que tendré que probar más a fondo si realmente vale la pena. No sé, quizás incluso monto un ejemplo de esto...