Motores de renders: el cambio que han experimentado con la aceleración por GPU – Onionlab
7-4-20

Motores de renders: el cambio que han experimentado con la aceleración por GPU

Cada uno de los proyectos que llegan a Onionlab es único. Los procesos que conllevan al resultado final son complejos y es por esto que se requiere de mucho tiempo y trabajo. La calidad de los mismos es tan importante como el tiempo de su producción. En el caso de nuestros mapping 3D, hablamos de proyecciones con una duración aproximada de 10 minutos. Pero, previo a esos 10 minutos, hay varias cosas que se tienen que se deben tener en cuenta.

Una de las cosas más importantes en ese proceso para nosotros, es el uso de motores de renders para crear un video realista sobre el producto final. ¿Por qué? Porque generar cada video mapping es muy costoso, y por lo tanto para bajar estos costos, se deben hacer lo más ágil y precisos posible. Como todo proyecto, debe haber un balance entre coste, cantidad de tiempo, y calidad de producto. Es por esto que creemos en la importancia de contar con software de renderización que permita cubrir estas necesidades. 

Render creado con Redshift- Barceló Sants Hotel
Render creado con Redshift- Barceló Sants Hotel
Render creado con Redshift- Barceló Sants Hotel
Render creado con Redshift- Barceló Sants Hotel

Pero para entender mejor este proceso, debemos remontarnos a los antecedentes. 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 operar hasta por supuesto el sistema operativo, y con él su interfaz. Es un componente multipropósito, que es capaz de manejar una menor cantidad de tareas o hilos al mismo tiempo, pero las mismas pueden ser mucho más complejas y variadas, lo que lo hace indispensable para manejar elementos clave del sistema operativo y de ciertas aplicaciones, como los procesadores de texto.

Del CPU al GPU

Pero, Programas CAD o videojuegos, por ejemplo, requerían muchos más recursos para funcionar correctamente. Llegados a este punto, los diseñadores de sistemas se basaron en un componente que ya existía para evolucionarlo y hacerlo crecer. En un primer momento, se creó el FPU (floating-point unit), coprocesadores matemáticos que eran utilizados en muchos sistemas para acelerar el procesamiento de datos. Luego, se viró a los GPU (graphic processing unit), que propósito específico: está optimizada para trabajar con grandes cantidades de datos y realizar las mismas operaciones, una y otra vez.

Render creado con Redshift- Génesis- 100 Aniversario Feria del Automobile
Render creado con Redshift- Génesis- 100 Aniversario Feria del Automobile

Las GPU están diseñadas desde cero para procesar instrucciones simultáneamente en muchos núcleos. Entonces, al renderizar, la GPU toma un solo conjunto de instrucciones y las ejecuta en múltiples núcleos (de 32 a cientos) en múltiples datos. Una GPU típica tendrá 2000-3000 núcleos y ejecutará 100 o más hilos de instrucciones. Cada hilo funcionará en alrededor de 30 bloques de datos a la vez. La CPU puede trabajar en aproximadamente 24 bloques de datos al mismo tiempo, mientras que una GPU puede manejar aproximadamente 3000. 

Render creado con Redshift- Paradoxa
Render creado con Redshift- Paradoxa
Render creado con Redshift- Paradoxa
Render creado con Redshift- Paradoxa

En fin, la aceleración GPU es algo muy sencillo. Se trata de derivar el trabajo con gráficos a quien está especializado en ello: a la tarjeta gráfica. De esta forma, mejoramos el rendimiento por dos vías: quitando carga a la CPU y usando 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 procesador para nosotros. 

¿Qué tipos de motores de render existen?

Evidentemente, los motores de render han sufrido una gran optimización con este tipo de procesador gráfico. Algunos programas de motores de render que se utilizan más a menudo son: Corona, Redshift, Octane y Arnold. ¿Qué diferencia hay entre ellos? Arnold, es un procesador de trazado de rayos de Monte Carlo avanzado creado para las demandas de animación de largometraje y efectos visuales. Originalmente desarrollado conjuntamente con Sony Pictures Imageworks y ahora su principal procesador, Arnold se utiliza en más de 300 estudios en todo el mundo, por lo que la inmensa mayoría de películas se realizan con este motor de render. Está disponible como un renderizador independiente en Linux, Windows y Mac OS X, con complementos compatibles para  Maya , 3ds MaxHoudini , Cinema 4DKatana

Render creado con Notch- ESTEVE
Render creado con Notch- ESTEVE
Render creado con Redshift- El prado
Render creado con Redshift- El prado

En el caso de Corona, renderizador fotorrealista de alto rendimiento, disponible para Autodesk 3ds Max, MAXON Cinema 4D y como una aplicación independiente. El desarrollo de Corona Renderer comenzó en 2009 como un proyecto de estudiante 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 producción capaz de crear resultados de alta calidad. 

Redshift  es el motor de render que utilizamos con mayor frecuencia en nuestro estudio, debido a su altísima calidad y por ser, al momento, el más rápido. Además, en ciertas ocasiones, por su compatibilidad con ciertos recursos, por ejemplo Bifrost de Maya. Otra característica diferente al resto, es que tiene licencia por máquina sin límite en la cantidad 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. Fue creado para satisfacer las demandas específicas del renderizado de producción contemporáneo de alta gama, y a su vez se integra con aplicaciones CG estándar de la industria.

Por último, Octane Render se destaca por ser el primer motor de render comercialmente disponible que trabaja exclusivamente con el GPU (Unidad de procesamiento gráfico) que calcula todas las medidas de la luz, la reflexión y la refracción como también y renderiza en tiempo real.