Motores de renderizado: El cambio que han experimentado con la aceleración en la GPU
- Los motores de renderizado que garantizan el satisfactorio resultado final de nuestros proyectos son complejos y por eso requieren mucho trabajo y tiempo
Cada proyecto que llega a Onionlab es único. La calidad de los proyectos es tan importante como el tiempo de su producción. En el caso de nuestros mappings 3D, hablamos de proyecciones con una duración aproximada de 10 minutos. Pero, antes de esos 10 minutos, hay varias cosas que hay que tener en cuenta.
Una de las cosas más importantes en el proceso de creación de nuestros proyectos, es el uso de motores de renderizado para que podamos crear vídeos realistas. ¿Por qué motores de renderizado? Porque generar cada mapping es muy caro, y por lo tanto para abaratar costes, hay que hacerlo de la forma más ágil y precisa posible. Como en cualquier proyecto, debe haber un equilibrio entre el coste, la cantidad de tiempo y la calidad del producto. Por ello, mantenemos la importancia de contar con un software de renderizado que cubra estas necesidades.
Pero para entender mejor este proceso, debemos remontarnos al pasado. En los primeros ordenadores el procesador central -CPU, central processing unit- era el encargado de gestionar y procesar todo tipo de información. Desde los datos que el usuario quería manejar hasta, por supuesto, el sistema operativo, y con él su interfaz. La CPU es un componente polivalente, que es capaz de manejar varias tareas o hilos al mismo tiempo, estas tareas pueden ser también mucho más complejas y variadas, haciéndose imprescindible para manejar elementos clave del sistema operativo y ciertas aplicaciones, como los procesadores de texto.
DE LA CPU A LA GPU
En cambio, los programas CAD o los videojuegos, por ejemplo, requerían muchos más recursos para funcionar correctamente. En este punto, los diseñadores de sistemas se basaron en un componente que ya existía para evolucionar y crecer. Al principio, se creó la FPU (unidad de coma flotante), coprocesadores matemáticos que se utilizaban en muchos sistemas para acelerar el procesamiento de datos. Después, se incorporó a las GPU (unidad de procesamiento gráfico), con un propósito específico: estar optimizada para trabajar con grandes cantidades de datos y realizar las mismas operaciones, una y otra vez.
Las GPU están diseñadas para procesar instrucciones simultáneamente en muchos núcleos. Así, al renderizar, la GPU toma un único conjunto de instrucciones y las ejecuta en varios núcleos (de 32 a cientos) sobre múltiples datos. Una GPU típica tendrá entre 2000 y 3000 núcleos y ejecutará 100 o más hilos de instrucciones. Cada hilo trabajará sobre unos 30 bloques de datos a la vez. La CPU puede trabajar con aproximadamente 24 bloques de datos al mismo tiempo, mientras que una GPU puede manejar aproximadamente 3000.
En cualquier caso, la aceleración de GPU es muy sencilla. Se trata de derivar el trabajo con gráficos a la tarjeta gráfica. De esta forma, mejoramos el rendimiento de dos maneras: quitando carga a la CPU y utilizando los procedimientos de la tarjeta gráfica, que son más rápidos y eficientes. Y en esto radica la importancia de este tipo de procesadores para nosotros.
¿QUÉ TIPOS DE MOTORES DE RENDERIZADO EXISTEN?
Obviamente, los motores de render han sufrido una gran optimización con este tipo de procesadores gráficos. Algunos programas de motores de render comúnmente utilizados son: Corona, Redshift, Octane y Arnold. ¿Cuál es la diferencia entre ellos? Arnold es un procesador avanzado de trazado de rayos Monte Carlo creado específicamente para las exigencias de la animación de largometrajes y los efectos visuales. Desarrollado originalmente en colaboración con Sony Pictures Imageworks y convertido ahora en su procesador principal, Arnold se utiliza en más de 300 estudios de todo el mundo, por lo que la gran mayoría de las películas se realizan con este motor de render. Está disponible como renderizador independiente en Linux, Windows y Mac OS X, con plugins compatibles para Maya, 3ds Max, Houdini, Cinema 4D y Katana.
En el caso de Corona, un renderizador fotorrealista de alto rendimiento disponible para Autodesk 3ds Max, MAXON Cinema 4D y como aplicación independiente. El desarrollo de Corona Renderer comenzó en 2009 como un proyecto estudiantil en solitario de Ondřej Karlík en la Universidad Técnica Checa de Praga. Pero a pesar de su corto tiempo en el mercado, Corona Renderer se ha convertido en un renderizador listo para la producción capaz de crear resultados de alta calidad.
Redshift es el motor de render que utilizamos con más frecuencia en nuestro estudio, debido a su alta calidad y por ser, de momento, el más rápido. Además, tiene una característica diferente al resto de renders, se licencia por máquina sin límite de GPU. No se hace distinción entre estaciones de trabajo y nodos de renderizado; 1 licencia es válida para 1 máquina, pero es transferible entre máquinas. Se creó para satisfacer las demandas específicas del renderizado de producción contemporáneo de gama alta y, a su vez, se integra con las aplicaciones CG estándar de la industria. Por último, Octane Render destaca por ser el primer motor de renderizado disponible comercialmente que funciona exclusivamente con la GPU (Unidad de Procesamiento Gráfico) que calcula todas las medidas de luz, reflexión y refracción, así como renderiza en tiempo real.