miércoles, 7 de abril de 2010

Render en tiempo real

Cuando observamos un video juego por lo general lo primero que nos llama la atencion es su apariencia, o sea, como se "ve" ; hay un factor comun entre las consolas de juego, tarjetas graficas, celulares etc. y es que tienen una continua carrera por generar graficos "mas realistas". a estas imagenes se les conocen como realtime, o imagenes en tiempo real, pues deben ser presentadas de 24 a 120 cuadros por segundo para poder cumplir su funcion. Normalmente veremos en la descripcion tecnica de algunos de estos hardwares un numero de triangulos por segundo que pueden representar en cada cuadro o frame. Pueden ser 90 millones, 28 millones etc. este numero que se da aqui es en fuerza bruta, no necesariamente el numero exacto de triangulos que habra en total en una escena geometricamente hablando; pues el hardware necesita de otros elementos para poder representar los triangulos, como lo son iluminacion, sombreado, texturas etc.

Cada uno de estos elementos al ser incluidos en la escena, restan significativamente la cantidad de triangulos geometricos que pueden aparecer. Para sacarle mejor partido a estos triangulos los programadores han recurrido a lo que se conoce como "shaders" (HLSL,GLSL,CG). Los shaders producen desde sombreados y texturas en los triangulos, hasta animacion procedural en la superficie de los mismos.
Ahora bien, que tan cerca se esta de igualar una produccion cinematografica con estos motores de tiempo real? la respuesta es que todavia no hemos llegado ahi. Tomemos como ejemplo el primer largometraje animado, Toy Story 1995, en su produccion se utilizaron alrrededor de 200 procesadores SparcStation 20's y SparcServer 1000, cada cuadro o frame tomo un promedio de 6 horas para renderizar, los modelos contaban con miles de hebras de pelo, texturas de alta definicion, reflejos de raytrace y un sin numero de shaders bien complejos del formato renderman estos factores subieron el tiempo de render a nada menos que 800,000 horas de offline rendering para obtener 77 minutos de animacion. Si quisieramos correr esta pelicula en un motor de tiempo real, necesitariamos el equivalente a
105 millones de procesadores funcionando alrrededor de 200 mghz cada uno para correr la pelicula a 24 frames por segundo.
Esto es una carrera sin fin , pues si pudiesemos correr la pelicula con estos recursos, solo hay que agregarle un triangulo mas para que deje de ser realtime, y los frames por segundo caigan por debajo de 24, y vivimos en un mundo donde los espectadores demandan cada dia graficos mas complejos y "realistas".

No hay comentarios:

Publicar un comentario