Descomponiendo el Ruido 3D
El ruido en una imagen 3D es esa variable que permite valorar la calidad obtenida luego de un proceso de renderizado. Se produce cuando el motor de render no captura la cantidad de luz apropiada, causando mezcla de imágenes y efecto distorsionado (granuloso, nubloso, etc.). Otras veces el problema se da por una incompatibilidad entre el motor de render y la unidad de procesamiento seleccionada: CPU o GPU.
Por ejemplo, si todas los cálculos se realizan en la tarjeta de video (GPU), toda la información necesaria para renderizar la escena debe caber en dicha tarjeta, o no será capaz de gestionar la carga de trabajo. Por lo que si la escena termina siendo demasiado grande, el algoritmo de convergencia de ruido no se aplicará y los fotogramas no se renderizarán correctamente.
El fabricante de workstations BOXX Technologies ha llevado a cabo un análisis comparativo entre V-Ray RT (CPU/GPU) y V-Ray Advanced (CPU). Los resultados muestran que una observación subjetiva no es suficiente para distinguir el uno del otro. Dejando de lado el factor velocidad, un enfoque más empírico era necesario. Esto pudo conseguirse por medio del Image Quality Calculator desarrollado por el departamento de Física y Astronomía de la Universidad de Manitoba (pueden leer el informe completo en inglés aquí). Como indica el artículo, el plugin computa la calidad a través del siguiente gráfico:
Calidad de Imagen = (P1-P2) + (P1-P3) + (P1-P4) + (P1-P5)
La ecuación suma las diferencias entre pixeles verticales y horizontales adyacentes en tres escalas diferentes (tamaño original, mitad de tamaño y cuarto de tamaño). Cuanto más alto sea el valor, mayor el ruido de la imagen.
Otra forma de tratar con el ruido 3D es a través del complemento Cycles de Blender, un render ray tracer capaz de actualizar información constantemente mientras nuevas modificaciones se llevan a cabo (por ej. cambiar el color de materiales, la intensidad de una lámpara o desplazar objetos).
Lo que diferencia a Cycles de otros motores de render, o de Blender Internal (BI), es su backwards path tracer, lo que significa que el rastreo de rayos de luz parte desde la cámara en vez de la fuente de luz.
©Blender Foundation – Manual de Contenidos Blender
La imagen superior muestra el proceso en reverso llevado a cabo por Cycles: como se ha mencionado anteriormente, los haces de luz son rastreados de la cámara a la escena, en vez desde la fuente de luz a la escena y luego a la cámara. Esta característica, junto a otras herramientas disponibles en su manual, pueden ayudarte a reducir el ruido considerablemente. Debes tener presente que Blender informa que la característica path tracer suele tener dificultades a la hora de tratar con caustic noise. El siguiente tutorial cortesía de CG Cookie Blender muestra cómo solucionarlo:
No te olvides que BI y otros motores de render también tienen sus ventajas; cual utilizar dependerá en lo que quieras conseguir. La misma lógica se aplica a la unidad de proceso. La velocidad es una variable condicionante, pero nunca debe priorizarse por encima de la calidad de la imagen (asumiendo que la calidad sea un factor determinante para ese proyecto). Eventualmente, lo mejor es ser pragmático y emplear el sistema que cause el menor número de incidencias. “Como en muchas otras situaciones, cuando se toman decisiones tecnológicas, lo específico sí importa”.
1) Pizzini, Joe (BOXX Technologies). "GPU Rendering vs. CPU Rendering – A method to compare render times with empirical benchmarks", http://blog.boxxtech.com/2014/10/02/gpu-rendering- vs-cpu- rendering-a- method-to- compare-render- times-with- empirical-benchmarks/ – 2 de Octubre, 2014 (accedido el 24 de Mayo, 2016).
2) University of Manitoba. "Plugins for Astronomical Image Processing with ImageJ", http://www.umanitoba.ca/faculties/science/astronomy/jwest/plugins.html – sin fecha (accedido el 24 de Mayo, 2016).
3) blender.org. "Cycles Render Engine – Introduction" – https://www.blender.org/manual/render/cycles/introduction.html – sin fecha (accedido el 26 de Mayo, 2016).
4) Blender Stack Exchange. "How is Cycles different from Blender Internal?",http://blender.stackexchange.com/questions/5820/how-is- cycles-different- from-blender- internal – 10 de Junio, (accedido el 26 de Mayo, 2016).
5) blender.org. "Cycles Render Engine – Reducing Noise" – https://www.blender.org/manual/render/cycles/reducing_noise.html –sin fecha (accedido el 28 de Mayo, 2016).
6) Quora.com. "Should one invest in CPU or in GPU for CGI rendering?", https://www.quora.com/Should-one- invest-in- CPU-or- in-GPU- for-CGI- rendering – 3 de Enero, 2015 (accedido el 20 de Mayo, 2016).