21 de octubre de 2008

Olescul efex!

Uau, esto parecen los viejos tiempos... xD Hoy he probado un par de cosas en el ejemplo de toon shading... bueno, en realidad tres cosas pero una la he dejado para más adelante.

Por un lado he añadido la animación de los trazos a lápiz que se ve en las partes sombreadas. Esto era realmente sencillo, simplemente es modificar las coordenadas de textura de los trazos cada cierto tiempo (normalmente mayor que el que se tarda en pintar un frame) según lo que dicte un número aleatorio. La verdad es que creo que queda medianamente bien, aunque según la textura usada y la cantidad de pantalla que ocupen estas zonas sombreadas, se puede notar un poco demasiado el 'tileado'... Pero bueno, yo no estoy como para ponerme a hacer texturas perfectas.

Por otro lado he cambiado la forma de dibujar la silueta. Lo cierto es que he añadido una silueta más. :P Aparte del efecto de los trazos que vi en el Valkyria Chronicles y que me inspiró para hacer este ejemplo, quería intentar otra cosa con las siluetas para que el conjunto quedara un poco más espectacular. Y eso que quería probar es lo que se ve en Okami. En este juego (y en muchos otros antiguos como Jet Set Radio) no se usa una detección de siluetas en el pixel shader como se hace hoy en día (y como estaba hecho en la foto de ayer), sino que se usa un truco bastante curioso. Se pinta la geometría normalmente con el sombreado cel "de toda la vida", y luego se giran las normales, se escala un poco el modelo y se pinta de negro. Es decir, se cambia el tipo de culling, se pinta de negro y un poco más grande y voilà, ya se ven unas bonitas siluetas. No son tan precisas como con el método más moderno, pero antiguamente era lo más rápido y además permite hacer ciertas cosas...

Esto me lleva a lo tercero que he querido probar. En los videos de Youtube no se ve demasiado bien, pero creo recordar que en Okami aparte de un cel-shading muy sencillito, se movía la geometría de las siluetas para simular el efecto de que se estaba pintando a mano toda la escena a casi cada frame. Eso fue un detalle que sencillamente me enamoró en su día. He hecho un par de pruebas para representar el mismo efecto y no me ha gustado demasiado el resultado, así que lo he dejado para más adelante. Básicamente, el problema es mover cada vértice de manera suficientemente sutil, aleatoria e independiente de sus vecinos como para que el efecto no resulte antinatural. No se, se me ocurren un par de maneras pero ya es tarde y hay que descansar.... lo justo.

Ah! Y de regalo otro video! En este se ven las siluetas "nuevas" (aunque mantengo las antiguas para que haya más detalle) y la animación de los trazos.

No hay comentarios: