9.29.2006

SpeedTree

Dado que he estado trabajando con esta librería, voy a hacer un pequeño resumen de qué es y para qué sirve además de comentar algunos apartados técnicos que me han resultado curioso.

SpeedTree es una librería que genera proceduralmente árboles en base a una definición de parámetros. En esencia es solo eso y lo dejan muy claro en la documentación, speedtree es solo un motor de cálculo, no un motor de render ni nada similar. Speedtree te da todos los datos para renderizar el árbol... las texturas (que no genera, claro), los vértices, las normales, el tangent space de cada vértice, los pesos de los "bones", y otros parámetros realmente curiosos.

Ciertamente la librería genera unos árboles de alta calidad y perfectamente preparados para renderizarlos y animarlos en tiempo real. Y es que bien se podría llamar SpeedHack, porque utiliza todas las artimañas posibles para renderiza más rápido. Usa el mal llamado pseudo-instancing, esto es, pasa todos los parámetros del árbol en coordenadas de textura (posición, rotación y otros) dejándo todo el trabajo al vertex shader, de esta forma se ahorran los cambios de matrices de cada uno de los árboles.

Pero la cosa no queda ahí, especifican claramente como debes renderizar, en qué orden y casi te imponen un sistema de oclusión basado en celdas con batches de vértices para renderizar todos los árboles lejanos como billboards. Aparte de todos los trucos típicos de cambiar lo mínimo posible el contexto, organizar los vértices para no tener fallos de caché, usar un lod precalculado, usan otros trucos curiosos. Por ejemplo, una vez conoces las especies de árboles que vas a usar, una herramienta que te trae el SDK, SpeedTreeCAD, te genera texturas batch, esto es, en ella acumulan todos los billboards de cada árbol, las texturas de las ramas, etc.

Sin embargo lo que más me ha gustado es la parte del movimiento de los árboles con el viento. Cada vértice tiene unos pesos, al igual que cuando se hace skinning, sin embargo aquí se han ideado un sistema por el cual todos los árboles, sea de la especia que sean, comparten matrices de transformación. Cada frame las matrices de viento cambian (puede ser 2 o más) y cada árbol tiene un índice a una de las matrices, de forma que el mecanismo de pseudo-instancing funciona de miedo ya que parece que cada árbol se mueve a su ritmo a pesar de tener las misma mastices, la misma malla y los mismo pesos. Y todo eso con solo un parámetro por shader.

Para concluir decir que la librería se nota que está currada, pero ciertamente esta enrevesada y es muy rígida a la hora de integrarla. No compila en GCC para PC (he tenido que hacer unos cuantos hacks), aunque sí está preparada para compilarse en PS3 con gcc, además de XBOX y DX. Decir que la demo que viene a modo de tutorial no funciona en tarjetas ATI y que hace conversiones a de float a enteros en el shader que tan pesadas son en algunas tarjetas.

Otro día sigo hablando de ella, tendría para horas...

Links:
- sitio oficial
- demo de trees of pangaea, demuestran lo que puede llegar a hacer speedtree

9.22.2006

sensacionalismo al poder

Qué mejor que ser un sensacionalista, sacar las noticias de contexto y mentir de forma indiscriminada para tener una noticia "que pegue"? La receta es fácil, coges algo sin ninguna importancia de hace años que tenga que ver con la actual situación, lo expones en un medio de comunicación masivo (periódico, TV o página web) y a vivir.

Ni más ni menos que esto es lo que ha pasado con el juego patera racing. En un blog de informativos telecinco publican la noticia de la existencia del juego patera racing, programado hace 4 años y cuyo aspecto dista mucho de ser una burla hacia los inmigrantes que se juegan el pescuezo a diario. Todo hecho, 20 minutos se hace eco, los foros empiezan a funcionar... y seguramente en pocos días antena3 y T5 echarán pestes contra todo el mundo de los videojuegos (todo esto entre noticia de muertes en algún atentado y el desayuno de ronaldiño). Por suerte, el que ha escrito la noticia no debe tener mucho de periodista, porque ha publicado una "rectificación", esto es, ha copiado un correo del supuesto autor, y digo supuesto por el comentario que hace el autor en su web.

Qué enseñan en las escuelas de periodismo? Cuando aprenderemos a quejarnos y no dejar que gente así escriba noticias que no lo son y que lo único que persiguen es generar polémicas donde no las hay. Triste.

EDIT: ojo al comentario del periodista de 20minutos acerca del diseño del juego... tendría que leer sus noticias antes de criticar de aspectos que no conoce. Manda huevos que diría trillo.

9.20.2006

lo que está por venir en OpenGL

Leyendo los foros de gamedev he encontrado un link con los ppt de las charlas sobre opengl del siggraph de este año. Lo ideal sería escuchar la charla, pero con las transparencias te haces una idea sobre OpenGL 3.0, información sobre Khronos, lo que va a pasar con Windows Vista y OpenGL (jaja) y lo que está por venir en OpenGL, que a mi modo de ver es el paper más interesante para el que esté pegándose con OpenGL a diario y que más o menos viene a ser lo que ya ha anunciado MS con su DX 10.

9.16.2006

Global Illumination usando GPU

Para no variar iñigo quilez vuelve a sacar un estupendo artículo de cómo precalcular la GI usando la GPU(*). La técnica es muy simple y es un paso más allá de la técnica que ya descibrió hace tiempo para calcular el Ambient occlusion. La imagen habla por si sola.




(*) Actualmente cuando se habla de GPU lo primero que te viene a la mente son los vertex y pixel shaders y quizás en alguna técnica para fakear alguna propiedad física de la luz o de los materiales, sin embargo la técnica que comenta no los usa necesariamente, tranquilamente se podría calcular usando la "fixed pipeline"

9.12.2006

Lo que faltaba



Leo en anaitgames que apple se mete en el terreno de los videojuegos. Si les ha funcionado el negocio de distribuir música en internet, por qué no les iba a funcionar la distribución de videojuegos? son 5 dolares (según este resumen) por cada juego, que creo que al cambio viene a ser lo que vale un juego de móvil de los que anuncian a todas horas en TV.

Puede que se quede en una anecdota, pero tiene un análisis muy interesante. Veremos a apple sacando peleando con nintendo y sony ?

El toro de vega

El toro de vega es un festejo que se realiza en Tordesillas, muy cerca de mi pueblo, y donde pasé 4 años de mi vida estudiando la correspondiente enseñanza obligatoria y el bachillerato, y que se basa en matar a un toro que sueltan por las calles y afueras del pueblo. Los mozos van con unas lanzas y se lo tienen que cargar, sin más.

Hoy veía la noticia en 20 minutos, los cuales están completamente en contra de los espectáculos taurinos, pero esta vez no es la noticia lo que me ha llamado la atención, si no los comentarios. En ellos todos hacen referencia a la bestialidad que es matar a un toro y demás, pero, curiosamente, lo hacen amenazando e insultando, incluso hay algunos que van más allá y son ellos mismos los que se proponen voluntarios para ir a partirle la jeta al señor que remató al toro, que por cierto, le ha metido el cuerno hasta el gañón.

Como he dicho, he estado durante 4 años conviviendo con gente que ha nacido viendo al toro de vega morir año tras año y para ellos es algo natural, está muy dentro de ellos, tanto que ven como una aberración que alguien se queje o quiera eliminarlo de las fiestas.

Mi opinión es que es una animalada, creo que los festejos taurines deben ir más en la línea de los cortes que en la de la matanza, sin embargo veo desmedida la actuación de las personas, tanto las que comentan en 20 minutos, como las de carne y hueso. Pretenden solucionar el problema dando de ostias a otros humanos? hay algún comentario que iguala a tordesillas con ETA.

De mientras los moros jodiéndonos la vida con las bombas, los inmigrantes palmándola, los españoles empeñándose (me hace gracia hablar en tercera persona :P), los etarras de verdad riendose de nosotros, la televisión "educativa", los bancos, telecos y empresas en general riendose del consumidor, los políticos chupando del frasco y haciendo el ridículo... no me jodas.

9.10.2006

Mi nueva casa

Aviso: post personal

Bueno, hace unos días comenté que ya tenía nueva casa... qué menos que poner una imagen jaja :P. Es solo del salón (no tengo tele) con todo el dominical descomprimido, mi reproductor de mp3 (que me lo regaló mi novia), dos latas de cocacola que me gustan porque decoran, la pda, el portátil y la wifi usb para sacarla por la ventana (al fondo) y "shuparles el intené", como dirían por aquí, a los vecinos.

9.04.2006

1 semana

Aviso: post personal

LLevo ya una semana en Murcia, y ya he estado en el trabajo dos días, lógicamente de contacto con la dinámica, de aprendizaje de las herramientas y el modo de trabajo, etc. La cosa promete, la gente que he conocido tiene un nivel muy alto, algunos de ellos buena experiencia en el sector del videojuego (ya me han contado algún cotilleo :P).

Qué tengo que hacer? de momento pelearme con speedtree, una librería de generación de árboles procedurales muy enfocada al entorno realtime. Se puede ver en movimiento en juegos como unreal, oblivion y, como me ha comentado Nae, en fallen lords. Es una librería potentísima y con una amplia librería de árboles, aunque tiene algunos fallos que ya comentaré.

Por otro lado he conocido enlightenment un gestor de ventanas muy interesante, no solo por el hecho de que sea bonito, si no por su arquitectura, que permite correr todo el gestor de ventanas no solo en linux, si no también en windows bajo una ventana usando GDI o incluso OpenGL. Y no se queda ahí la cosa, también corre en dispositivos embebidos. Eso por no hablar del acabado. Pinta muy bien, de momento he conocido algunas caraterísticas y me ha encantado, a ver qué tal pinta.

El resto... bien, sobreviviendo.