Post date: agosto 05, 2020 | Category: Décima Novena Edición Agosto 2019
SECCIÓN: Artículos
ESCULPIDO DIGITAL DEL BATMAN: render por passes
Dra. Natalia Gurieva,
Juan Manuel Martínez Juárez
Departamento de Arte y Empresa, Universidad de Guanajuato
Resumen:
La constante más común dentro de la práctica artística, cuando se trabaja con modelos 3D, es lo confuso y difícil que pueden llegan a ser los diferentes tipos de motores y técnicas de render y su función. Teniendo en cuenta que existe una extensa variedad de estos y que generan resultados distintos según su uso o sus alcances específicos este proyecto intenta ser una solución a la heterogeneidad de estos modelos.
No existe un tipo de motor que sea superior al otro, sus características son aprovechadas de acuerdo con la necesidad del artista y, es aquí donde muchas veces el artista se encuentra atrapado en un agujero negro de la composición. En esta problemática, se puede perder totalmente la noción del tiempo y se corre el riesgo de llegar a perder el rumbo debido a las pocas opciones que el proceso de rendering presenta en un software automatizado. Estos softwares tienden a limitar al artista reduciendo todo el proceso a la elección de un grado de nitidez que se perciba como que otro. Por esto, la técnica de pases de render es una de las mejores opciones para generar una imagen que ofrezca niveles de personalización y optimización más altos.
Este es el factor más importante para producir una composición y una imagen interesante en la técnica 3D. Los pases, se entienden como la capacidad de producir máscaras y capas buenas y poder crear selecciones dentro de la composición de la imagen. La ventaja de esto es que existen varios softwares que nos permiten generan fácilmente una variedad de pases de render en los cuales es importante conocer qué tipo de pases son óptimos para ser utilizados en la composición de la imagen. De este modo, se puede desarrollar un análisis con el fin generar un resultado óptimo en el proceso de composición. Esto con la intención de modificar variables y generar métodos para ser más creativos en el resultado.
Introducción
Los renders, y en específico el método del render passes, le otorga una idea de la gran importancia de cada componente del render tiene en el producto final de la imagen. Gracias a esto, la creación de imágenes digitales mediante motores de rendering abarca demasiados temas, lo cual, nos habla del amplio marco de conocimiento que supone el uso de estas técnicas. Es posible dividir este conocimiento en dos aspectos fundamentales de estudio: la simulación o representación de la iluminación y, de los materiales. La relación resulta más que evidente pues si no hay materiales que redistribuyan de cierta manera la iluminación no podemos generar un análisis y, en consecuencia, si no hay iluminación, poco se puede decir de las propiedades de los materiales y, como resultado, no es posible optimizar el proceso. Es por esto por lo que tomando en cuenta los diferentes motores y técnicas de rendering que actualmente se utilizan en la industria del 3D, es fundamental enfocar y destacar estos dos factores como elemento de estudio.
La psicología de la Gestalt es una filosofía que teoriza sobre la forma en que se comporta el cerebro al percibir formas e imágenes. El principio de Gestalt puede proporcionar un vistazo a las similitudes del razonamiento inconsciente de las personas cuando se trata de experimentar, entre otras cosas, el efecto de la luz en las formas sin explicar por qué o cómo sucede. No se consideraba la iluminación como medio narrativo durante mucho tiempo, pero su importancia y beneficios se hacen evidentes una vez que comienza a trabajar constantemente en la producción artística.
Se eligió el rostro del super héroe Batman (Batman: Batman VS Superman) para esculpir por que contiene elementos en su vestimenta con diferentes materiales, formas y texturas que ayudan a implementar y darle variedad al ejemplo a demostrar, aunque solo se abordara de manera general pues el proceso de modelado no es el caso de estudio sino el medio en el que se aplicara la implementación del render.
Figura 1: Moodboard de referencia del personaje
El conocimiento de la iluminación siempre será un recordatorio de lo que ocurre con las formas del cuerpo, la piel y de lo que puede o no puede ser posible en este mundo. También te proporciona las herramientas para doblar la realidad de una manera adecuada, pero no funcionará por sí sola.
En este caso se trata de un modelo que intenta replicar de formas más fehacientemente la realidad [fig.1], lo que comúnmente se le conoce como Likeness, tratando de plasmar lo más posible los detalles secundarios y terciarios para poder resaltarlos con los passes y el algoritmo más adelante.
Figura 2: Escultura digital sin procesar
Tomando estos aspectos en cuenta el mejor enfoque para entender esto y que pueda aprovechar el máximo potencial durante el shading y lookdev [fig. 2], es afrontar el trabajo como si de una pintura se tratase, mirar las cosas a nuestro alrededor en la vida real, y tratar de conseguir los mismos resultados, un camino muy sencillo y directo para que pueda conseguir esto es utilizar los modelos de color para generar y calcular la iluminación (Saturación) pues proveen de una vasta gama de luminosidad o claridad lo que nos permite acercarnos a resultados más realistas y el modelo de color HSV cumple con estas características.
Construcción de los passes
Teniendo en cuenta el amplio panorama de softwares de esculpido digital sin duda ZBrush de Pixologic sobresale del resto al ser un estándar dentro de la industria además de su gran cantidad de característica proporciona una herramienta que le facilitará y automatizará drásticamente la creación y optimización del algoritmo, esto le permitirá poder trabajar en una canal de dos vías entre ZBrush y Photoshop [fig. 3].
Figura 3: Workflow general.
Es por esto que la mejor opción como entorno de trabajo principal para la creación del modelo 3D y el renderizado del mismo es ZBrush el cual le permitirá ajustar el render final, a continuación, se detallara a fondo el proceso de la optimización, desde el modelo hasta el resultado final.
Figura 4: Representación del proceso de Render por Passes en Phothoshop
La luminosidad tiene un papel importante en construcción de flujo de trabajo ya que todas las capas de fusión y passes se ven afectados y reacciona directa o indirectamente de este valor y determinan el resultado final de estos elementos de composición, esta etapa del proceso se basa mucho en la observación, tiene que pensar cómo piensa una cámara fotográfica, como asimila la luz, cuando se trata de una exposición excesiva en cierto material o cómo reacciona ante piel humana y un esquema de iluminación determinado, se trata de que mediante la edición la imagen se sienta viva y todo este proceso se realiza manualmente mediante las propiedades que le proporciona el método de Render Pass [fig. 4], agregando filtros o ajustes en la iluminación para crear efecto artístico – estilo realista.
Una vez que ha exportados todos los passes de ZBrush obtendra los passes organizados en carpetas como una manera de que pueda controlar las capas y pueda tener un mejor manejo de estas, al activar o desactivar o inclusive como afectan a las demás capas, están identificadas por colores para una mejor referencia, si es necesarios puede agregar más capas según se requiera como en este caso se hizo con la carpeta de Background, nombrar carpetas y capas apropiadamente le ayudara a ubicarse en el área de trabajo y poder aplicar los efectos necesarios en la capa correcta.
Figura 5: Organización de los passes en Phothoshop
Estos passes han sido distribuidos de una manera automática: Mask: Contiene los passes de Mask de cada Subtool que componen el modelo 3D, el uso de esta carpeta es la de seleccionar áreas específicas de la imagen mediante las máscaras. Effects: Como su nombre lo dice contiene passes que generan efectos específicos en la imagen, esta carpeta contiene los passes de Wireframe, Specular, Ambient Oclussion, SSS y Shadows. Geometry: En esta carpeta se encuentran passes relacionados directamente que con la estructura del modelo 3D tales como SubtoolID, PolygroupID, Depth, Color Bump, Ts Normal, OS Normal y Structure, la mayoría de estos passes pueden ser usados como mascaras. Lights: Contiene los passes de las distintas luces, Back Right Light, Back Left Light, Back Top Light, Right Light, Left Light y Front Light, regularmente luces principales y de relleno. Materials: Esta carpeta contiene passes de materiales si es que decide agregar materiales extras a la composición 3D. Baselayers: Contiene los passes generados desde un solo pase BPR en ZBrush, como Preview, Albedo, Best y BPR.
Durante el proceso de optimización se destacan dos atributos principales: el Modo de fusión y Opacidad. El primero determina como reaccionara la capa del pase y el otro con cuanta intensidad afecta ese modo a su imagen base.
2.1 Baselayers
La carpeta contiene los passes Preview, Albedo, Best y BPR. Estos passes se obtienen con un solo pase BPR es decir es el resultado final de este y por ende resultan en un lienzo base sobre el que trabajar que le permitira ir agregando información en base a la suma de los otros passes, cualquiera de estos funciona, pero en base a la observación el pase BPR genera una base con buenos resultados, pues al agregar los passes potenciara los elementos de composición que este ya contiene y no dependera de agregar passes innecesarios como Structure, este pase no lleva ajuste alguno.
Figura 6: Carpeta BaseLayers
Este pase BPR le ayudara a realzar los detalles del modelo 3D; Duplicando la capa del pase BPR y presionando Ctrl + J, cambiara su Modo de fusión a Overlay e ira a Filters > Others > High Pass. Establecera el Radio en un valor entre 2.0 a 5.0 píxeles y presionara OK, luego ajustara la Opacidad de la capa al 50%. Esta es una forma de obtener una imagen base más nítida con detalles más limpios para trabajar.
La siguiente carpeta sería la de Materials pero en este caso particular no se agregó ningun material extra en la composición por lo tanto pasaría directamente a la carpeta Lights.
2.2 Lights
La carpeta Lights contiene los diferentes passes de las luces que iluminan la escena en sus diferentes posiciones, en este apartado se cubre como utilizara el sistema de iluminación de los passes en ZBrush para crear elementos narrativos dentro de la composición, antes de comenzar a describir ejemplos específicos, es necesario explicar brevemente la filosofía aplicada cuando se trata del enfoque de iluminación.
La iluminación es uno de los aspectos más importantes a la hora de contar una historia visual, ya sea que se esté presentando un objeto, un entorno o un personaje. Si bien hay múltiples ejemplos de configuraciones de iluminación para personajes que pueden funcionar en múltiples escenarios (Rembrandt, Butterfly Lighting, 3 puntos) aportando a la narración y la representación visual. La forma en la que puede abordar la iluminación es mirar al personaje como un lienzo en blanco, incluso si paso horas esculpiendo, modelando, texturizando o configurando materiales, el personaje seguirá siendo un lienzo vacío hasta que se ilumine correctamente. Las luces principales, de relleno y direccionales son como pinceles, con las que pintara el lienzo para revelar el personaje que ha creado.
A veces la iluminación en tiempo real puede ser bastante técnica sin embargo Photoshop ofrece herramientas increíblemente poderosas dentro de su simplicidad, sin las abrumadoras opciones técnicas que se pueden encontrar en otros motores de render. Cuando genere una composición es importante tener una historia en mente y una visión clara de donde viene, para este personaje en concreto fue un poco más fácil pues ya había una historia de fondo con la cual experimentar. Tener esta historia de fondo fue un buen punto de partida a la hora de diseñar y ejecutar la iluminación, pues establecido el estado de ánimo y la dirección del esquema de luces. La imagen tendrá estilo realista ya que estaba basando el personaje en una imagen real de una película en concreto [fig. 7].
Figura 7: Batman v Superman: Dawn of Justice Ultimate Edition – Nightmare Scene
Los puntos para tener en cuenta a la hora de iluminar este personaje:
• El personaje se caracteriza por tener una personalidad sombría y un carácter solemne, la iluminación necesitaba tener tonos fríos, se tenía que enfatizar su personalidad mediante las luces y poder generar ese tipo de sombras.
• La cara debe decir mucho sobre el personaje, la forma del cráneo, el traje y las diversas formas de la cara deben ser fáciles de leer. Es importante evitar tener demasiadas sombras duras en la cara, cuanta más información tenga más fácil le será crear una narrativa visual con la cual trabajar.
• Los ojos son una parte fundamental de la composición debe intentar capturar la mayor naturalidad y vida en ellos para generar un aspecto natural es por eso por lo que es la única parte de la imagen que tiene color.
• El objetivo de la iluminación de Fill (Relleno) significa que algunas luces tendrán que ser llevadas al extremo para generar HighLights en los bordes, esto enfatizara la composición y guiara los ojos del espectador hacia la cabeza y luego hacia el torso y silueta del personaje.
El proceso desarrollado comienza con los passes de luces básicos que exporta ZBrush por default. Es un esquema de 5 luces, 3 principales y 2 de relleno para crear los Highligts y no crear sombras sobresaturadas o luces demasiado brillantes, las luces que se utilizaron en esta composición son Back Right Light (HighLights), Back Left Light (HighLights), Left Ligh, Back Left Light y Front Light [fig. 8]. Es importante agregar las luces necesarias debido a que la iluminación afectara drásticamente las texturas y la saturación general del personaje generando la atmosfera deseada.
Figura 8: Esquema de iluminación representado por colores
Una vez que ha establecido una base sólida de iluminación, comenzara a abordar los ajustes finales. Las luces principales son las luces más importantes en la escena y las que llevan más tiempo del proceso eligiéndolas, considere que estas luces son el trazo más amplio en el lienzo, la dirección, la intensidad y el tamaño de estas luces cambian el 90% de la iluminación, el enfoque debe estar en obtener el color y las sombras correctos, así como en resaltar las formas del personaje.
Por otro lado, las luces de relleno en este caso HighLights necesitan un ajuste más detallado para resaltar la silueta y resaltar puntos clave de la composición, la estructura del cráneo, la grasa suelta y las formas fuertes de las cejas son una gran parte del carácter del personaje y cuentan una historia sobre su pasado. ES importante que se asegure de que estas características se leen muy bien al espectador esto lo lograra mediante Imagen > Adjustment > Levels para aumentar la iluminación y crear un contraste alto pues le permite un mayor control, aunque a veces se puede duplicar una de las capas de alguna luz principal para resaltar una luz según la necesidad en este caso se creó una luz de relleno para generar un HighLight de un color azul mediante Image > Adjustments > Hue/Saturation y seleccionara la opción de Colorze. Se eligió el color azul en esta luz ya que las luces con tonalidades más frías desaturan las texturas y evocan un estado de animo mas neutral pero solemne. Por ejemplo, tener luces frías puede funcionar cuando se tienen personajes en un ambiente nocturno, lluvioso o tenebroso. Tener una luz con tonalidades cálida por el contrario realzara los colores del personaje y hará que el ambiente en general sea cálido, seguro y feliz. Hay ocasiones en las que es necesario mezclar estas dos iluminaciones para crear ambientes específicos. Aumentando la intensidad de la luz cambiará drásticamente la suavidad de las sombras, así como el reflejo Specular en las formas. Cuando se trata de opciones de color, puede ser tanto funcional como artístico.
Figura 9: Carpeta Lights
Con la iluminación final [fig. 9], puede ver que la escena tiene una variación de luces mediante los HighLights lo que realza ciertas características de la silueta. Por último, la iluminación volumétrica ayuda a impulsar la profundidad y enfatizar el ambiente sombrío. Cada luz tiene un propósito, y es importante no complicar demasiado el proceso, de lo contrario se puede enturbiar la composición y no ser visualmente atractivo, en este punto del proceso ya cuenta con un boceto bastante claro sobre el cual ir trabajando para ir agregando detalles por medio de las demás capas.
2.3 Geometry
La carpeta Geometry contiene los passes relacionados con la estructura e identificación de la escultura digital mayoritariamente estos son SubtoolID, PolygroupID, Depth, Color Bump, Ts Normal, OS Normal y Structure, para efectos dentro de mi Workflow los passes que considero indispensables emplear son Depth y Color Bump aunque los otros mapas también pueden generar efectos interesantes, Depth lo puede usar de dos maneras, considerando que es un pase que se basa en información en base a profundidad en el eje Z lo puede implementar como una máscara para poder generar profundidad de campo lo que agrega realismo a la escena, la otra manera de emplearlo es como una fuente de luz con un degradado mucho más suave, aunque como se mencionó antes en este caso particular se requeria recuperar más sombras que aportaban a la narración visual así que el modo de fusión Multiply le ayudara a generar este efecto, por otro lado Color Bump podría describirse como una especie de displayment map muy básico el cual nos ayuda a resaltar un poco el micro-detalle que pueda perder mediante la iluminación o el SSS y también generar un poco de contraste lo que también le ayuda a eliminar los reflejos especulares dentro de los poros o cavidades muy pequeñas de manera no destructiva, lo que funciona con superficies con detalles muy pequeñas como la piel, es importante que ponga atención en esos detalles nada es perfecto en la vida real agregar imperfecciones con estos passes ayuda a vender la credibilidad del personaje, el mejor modo de fusión para lograr esto es Multiply, aunque tendríamos que regular la opacidad para no obscurecer demasiado la imagen.
Figura 10: Carpeta Geometry
En esta imagen en concreto como ya se menciona anteriormente la intension era que la imagen final fuera oscura, brumosa y de alto contraste con una paleta de tonos algo apagada, pues así lo requería el personaje. Tener los niveles de negro en su lugar era el objetivo de esta ç y poder tener un contraste alto sin perder los detalles era el reto que los passes Depth y Color Bump le pueden ayudaron a lograr.
2.4 Effects
Esta carpeta dentro del workflow la considero de las mas importantes junto a Lights pues contiene los passes Wireframe, Specular, Ambient Oclussion, SSS y Shadows muchos de estos crean efectos específicos que crean ese realismo en la imagen principalmente Specular , Ambient Oclussion y Shadows.
Con la iluminación y detalles creados y ajustados, es hora de que agregue más luz para generar y refinar los detalles finales. Estos passes los colocara sobre las capas anteriores. Para la capa de Specular la cual podría describirse como la reflexión de los objetos, en general para la mayoría de las capas en esta carpeta puede usar un modo de fusión ligera como Multiply y dependiendo del material puede ir ajustando la opacidad de cada una para controlar su intensidad es recomendable duplicar (Ctrl + J) la capa por cada objeto que requieran estos passes, los ajustes se basan en la mera observación del objeto en la realidad para poder simular un aspecto lo más real posible, esta es la parte del proyecto donde necesitara un poco más de paciencia y observación. Después de algunos comentarios, se puede observar una cierta necesidad de acercarse a la referencia del personaje original sin perder las características del concepto. Entonces, nuevamente, puede reunir más referencias de los diferentes materiales que componen la imagen para comparar algunas de las características y obtener el siguiente resultado [fig. 11], el pase de Ambient Oclussion se define como la luz ambiente, esta luz es la que le permitirá unificar la iluminación que anteriormente había creado y luzca de una manera más natural, la intensidad de este pase juega un papel importante en la suavidad de las sombras y la intensidad de las reflexiones especulares. Tener una intensidad de iluminación más pequeña creará sombras más duras y hará que el reflejo Specular sea más estrecho al aumentar la intensidad de la iluminación se crean sombras más suaves y los reflejos especulares se hacen más amplios, cambiando la forma en que se percibe la forma, por último, Shadows le permite generar sombras más difusas y por ende de un aspecto más natural y orgánico.
Figura 11: Referencia de detalles del pase Specular
En la practica tienden a usar las sombras debajo de la nariz y las cejas como puntos de referencia [fig. 4.19], ya que dan una buena indicación de qué tan alta o baja la opacidad necesita ser ajustada. En general, todos los ajustes de la imagen están hechos con valores pequeños. De esta manera puedo mejorar algunas configuraciones para ver mejor lo que está sucediendo con los detalles de la imagen y el antialiasing.
Figura 12: Carpeta Specular
La mayoría de Shaders están en capas aisladas mediante las máscaras de la carpeta Mask que le permite ajustar independientemente cada pieza. Algunos passes como el Specular y el Color Bump se pueden controlar con más libertad. A continuación, en la figura 13 se presenta el resultado final.
Figura 13: Composicion Final
Una vez que este satisfecho con los ajustes finales, debera fusionar todas las capas para que se integren en la composición final. Puede agregar detalles de presentación, alguna especie de bruma mediante algun brush puede agregar cierto realismo a la escena, mientras que un poco de ruido (Filter > Noise > Add Noise) puede imitar el efecto de una toma de cámara [fig. 13], una vez concluida la imagen puede simplificar y optimizar el Workflow mediante un algoritmo que esta resumido mediante un pseudocódigo.
3. Algoritmo de optimización
El termino de algoritmo a grandes rasgos se podría definir como un conjunto ordenado de operaciones sistemáticas que permite hacer un cálculo y hallar la solución de un tipo de problemas. En la vida cotidiana se emplean algoritmos en multitud de ocasiones para resolver diversos problemas, ejemplos de esto son los instructivos o más comúnmente dentro de las matemáticas o la programación es por eso se elegio esta herramienta como una manera de optimizar y agilizar el proceso dentro del workflow a la hora de trabajar con los elementos de composición anteriormente desarrollados; Su importancia radica en mostrar la manera de llevar a cabo el proceso y resolver típicamente problemas de una manera eficiente es decir que las indicaciones o instrucciones encuentre la solución en el menor tiempo posible y poder seguir el mismo proceso más de una vez para llegar sin importar el que, al mismo resultado siempre y cuando se cumplan con las condiciones estipuladas.
A continuación, se presenta el algoritmo como medio de optimización de flujo del trabajo con pseudocódigo.
3.1 Pseudocódigo
En este apartado se presentan los pasos que “mentalmente” se pueden seguir para diseñar el algoritmo mediante un pseudocódigo para representarlo de una manera informal y compacta. Las fases nos señalen valores específicos que ayudan a elegir qué tipo de passes utilizaremos según la ocasión lo amerite y así ir definiendo el diseño de su imagen en un tiempo más optimo sin repeticiones y otras iteraciones.
INICIO Elegir los passes Passe BPR, Mask y Shadow por Default ¿Existe varias Subtools en la composición? Si ∴ Passe Subtool Mask ¿Existe color en la composición? Si ∴ Passe Albedo ¿Existen zonas con piel expuesta en la composición? Si ∴ Passe SSS ¿Existen zonas con alto detalle en la composición? Si ∴ Passe Color Bump ¿Existe profundidad de campo en la composición? Si ∴ Passe Depth y Ambient Occlusion ¿Existen Materiales con alta reflectividad en la composición? Si ∴ Passe Spec ¿Creaste un Lighting setup para la composición? Si ∴ Passe Lights FINAL
Esta serie de pasos o instrucciones están pensadas para facilitar la elección de passes y poderlo guiar a un resultado optimo en el menor tiempo posible sin embargo no son valores específicos ya que la intención no es crear un tutorial para un caso específico sino un algoritmo que pueda servir en diferentes situaciones.
4. Conclusiones
El método de Render por Passes permite la optimización del flujo de trabajo para los distintos propósitos artísticos creando discursos visuales a través de los elementos de composición. Con el tiempo los artistas podrán ver y sentir las luces, formas y volúmenes de la composición con facilidad y adaptar el flujo de trabajo para sus necesidades dentro de la práctica artística. El elemento de la iluminación es crucial al presentar una obra artística, si se ejecuta, una buena iluminación puede hacer la diferencia entre la noche y el día y así poder sacar a relucir la historia de un personaje de muchas maneras, mediante los elementos de composición.
Podemos concluir que se alcanzaron los objetivos planteados determinando conceptos y parámetros de todo el algoritmo de render desde la parte teórica hasta la parte práctica en el transcurso del trabajo comprobando que es posible optimizar el proceso de render 3D en la práctica artística.
Bibliografia:
Ivan Sutherland (1963). “Sketchpad: the first interactive computer graphics.” PhD. thesis, 1963 — Mass. institute of technology. SUN microsystems. Recuperado de http://www.inventinginteractive.com/2010/01/18/1963-sketchpad/ fecha de consulta 09.06.2019]
Keller, Alexander, Wächter, Carsten, (2017). “The iray Light transport simulation and rendering system”, Eprint arxiv:1705.01263.
R. Barringer, M. Andersson, and T. Akenine-möller, (2016). “Ray accelerator: efficient and flexible raytracing on a heterogeneous architecture.” Computer graphics forum.
Racco Bikker and Jeroen Van Schijndel, (2013). “The brigade renderer: a path tracer for real-time games,” International journal of computer games technology, vol. 2013, article id 578269, 14 pages, 2013. doi:10.1155/2013/578269.
J. Bikker, (2007). “Real-time raytracing through the eyes of a game developer,” in proceedings of the ieee symposium on interactive raytracing (RT ’07), pp. 1–10, IEEE computer society, Ulm, Germany, September 2007.
J. Monedero, (2015). “Simulación visual de la iluminación: teoría, técnicas, análisis de casos,” Universitat politecnica de catalunya. Iniciativa digital politecnica; Edición: 1, 21 de diciembre de 2015.
J. Birn, (2013). “Digital Lighting and rendering,” New Riders Pub; Edición: 3, 11 de noviembre de 2013.
bdatelierdigital. (2016). ¿Motores de render? 101 (biased & unbiased).: CGtacos publishing. [Recuperado de https://cgtacos.wordpress.com/2016/04/22/motores-de-render-101/ fecha de consulta 05.06.2019]
D. Shklyar, (2004). 3D rendering history: CGsociety publishing. [Recuperado de http://www.cgsociety.org/cgsfeatures/cgsfeatureSpecial/custom_story/1647&page=1 fecha de consulta 01.07.2019]