|
Interesante enlace que nos muestran en la lista de codepixel , de la mano de Ivan Alduan, sobre el motor del próximo (y esperado) StarCraft II. Blizzard nos cuenta que este motor está fuertemente basado en shaders, intentando hacer una librería extensa y completa de efectos (una base enorme según ellos) donde los programadores puedan simular los efectos que los artistas prototipan primero en 3dsmax. Personalmente me parece una muy buena idea, porque es replicar lo que hace Pixar son su departamento de shading. En Pixar, casi todo es procedural, las texturas, las geometrías, etc. Se intenta no pintar nada, así se pueden reaprovechar los shaders entre producciones. Al principio es un desarrollo enorme, sólo al alcance de empresas grandes, pero a la larga, Blizzard dispondrá de una gran fuente de shaders. Mucho del trabajo del starcraft II servirá de base para próximos juegos donde irán mejorando, incrementando el realismo y la experiencia final del jugador. También nos cuenta que como el juego es de estrategia, y siempre estamos lejos de las unidades, los modelos tienen poco s polígonos, asi pueden trabajar con un número mayor (hasta 500 en pantalla) manteniendo el real time. De todos modos, el engine es dual, ya que se utiliza para mostrar las cinemáticas del juego (donde hay mayor cantidad de efectos especiales y la empresa pueda probar técnicas demasiado complejas para meter en el videojuego). El juego y el motor fue diseñandose mediante pruebas de stress. Rápidamente se optó por soluciones "screen space", esto e, cosas como SSAO , Deferred Lighting , que independizan hasta cierto punto la iluminación de la cantidad de polígonos. En el documento se nos explican los pases utilizados, que son los tradicionales en cine de animación: depth, normales, difuso y specular, etc. Eso sí, usando HDR para todo, lo que no parece se run coste demasiado alto. Sobre SSAO, tenemos una extensa y completa explicación de la solución, usando una función lineal para la oclusión. Nos muestran los problemas que han tenido con el ruido, al que han aplicado un simple blur para hacerlo de baja frecuencia. Un detalle importante es que tienen como 2 sets de SSAO, uno para el efecto de amblient occlusion, y otro para simular una especie de iluminación global (color bleeding) que los artistas querían dar a la escena. También nos hablandel Depth of Field que aplican a las escenas de cinemáticas, con un completo esquema del efecto, donde aplican un desenfoque según nos alejemos de donde esté apuntando la cámara en ese momento. Incluye una fórmula que podemos aplicar con los valores del pase de profundidad. El documento nos muestra una detallada información del algoritmo, con shaders de ejemplo, donde combinan distintos desenfoques para solucionar los casos frontera. Importante el tema de las transparencias, muy problemáticas con el deferred shading. En general usan múltiples renders para solucionar el problema. En transparencias clave, usan ciertas máscaras para efectos como el depth of field y el SSAO. Sombras transparentes:usan un shadow map ordenado, permitiendo que los humos puedan emitir sombra. Se usa un orden especial en 2 shadow maps distintos para ello. Aprovechan el color pass del shadow map para escribir el color.
|