Colorway en VFX - capítulo 2
Hace apenas unos días realicé mis primeras pruebas en Colorway. Mi idea es utilizar este software como herramienta de texturizado y look-development para proyectos de efectos visuales.
Creo que puede ser una herramienta muy potente, y sobretodo, muy artist friendly para trabajar en diferentes tipos de assets.
También creo que puede ser una herramienta para hacer presentaciones rápidas de assets individuales, ya que no solo puedes crear diferentes versiones de un mismo asset, si no que también puedes crear looks, efectos de lente, etc.
Con este segundo test pretendo crear un asset complet, aunque sencillo, para VFX, crear diferentes variaciones y poner todo junto en una plantilla para dailies.
Al final de mis pruebas, estoy bastante contento con el resultado y la metodología de trabajo entre Modo, Mari y Colorway. He encontrado algunas limitaciones pero sinceramente creo que más pronto que tarde, Colorway será una herramienta que voy a utilizar en proyectos para texturizado y look-development.
Transfiriendo texturas
Una de las (graves) limitaciones que he encontrado en Colorway, es que de momento no soporta UDIMs. (me consta que ya están arreglando esto).
Texturicé este personaje hace tiempo, por supuesto siguiendo los estándares de texturizado para VFX, y por supuesto estoy utilizando UDIMs. Alrededor de unos 50 UDIMs de 4k de resolución.
Para poder llevarme este personaje a Colorway tuve que crear un UV mapping de baja resolución, utilizando para ello únicamente el espacio de UVs 1001
Para mantener una resolución mínima, dividí el personaje en diferentes partes: cabeza, brazos, piernas, torso y pelvis, y para cada una de estas partes creé un UV mapping diferente, para posteriormente aplicar texturas de 8k de resolución. Estoy utilizando solo 3 canales de textura, Color, Specular y Bump.
Para pasar las texturas basadas en UDIMs al nuevo UV mapping de baja resolución, utilice la herramienta "layer transfer" de Mari. Es la primera vez que la utilizaba (hasta entonces hacía esta tarea en Maya) y es realmente rápida, apenas pierdes tiempo en bakear texturas entre multiples resoluciones de UVs.
Layer transfer tool in Mari.
Todas las nuevas texturas una vez bakeadas en el nuevo UV mapping de baja resolución.
Mi setup de iluminación en Modo no podría ser más sencillo. Simplemente estoy utilizando un mapa equirectangular HDRI de Beverlly Hills. De hecho, es un mapa que viene con Modo.
Image Based Lighting funciona realmente bien en Modo. Además existe la posibilidad de combinar diferentes IBL de forma muy sencilla e intuitiva.
Simplemente funciona bien.
En cuanto a shading se refiere también es todo muy sencillo. Simplemente utilizo una capa de shading con Color, Specular y Bump. Utilizo el mismo shader para cada parte del asset, simplemente cambio las texturas.
El render solo tarda unos 3 minutos, que para estar trabajando con un MacBook Air no está nada mal :)
El render para Colorway tarda un poco más, pero obviamente después vas a ahorrar mucho tiempo haciendo cambios y variaciones.
He creado una variación de texturas de color en Mari, que posteriormente aplicaré para ver los cambios de shading en tiempo real.
Todas las partes del asset exportadas desde Modo se encuentran a la derecha, basta con seleccionar una de ellas para poder modificarla.
En la parte derecha se encuentran todas las luces exportadas desde Modo. Se puede cambiar la intensidad, el color o simplemente apagarlas. En este caso solo tengo un IBL.
En la parte derecha también encontramos todos los shaders disponibles en la escena. Se puede tocar la intensidad, el color y las texturas de diffuse. Esto te da la posibilidad de crear multitud de versiones del mismo asset en tiempo real.
También existe la posibilidad de crear simples efectos de post-processing como color correction, lens effects, etc. Esto esta bien para tener un feedback visual rápido de algunos de los efectos mas comunes utilizados en VFX.
Finalmente creé un par de variaciones para este asset.
Notas
Un par de cosas de las que me he dado cuenta trabajando en este asset.
- Tenía una de las partes con las normales invertidas. Sin darme cuenta de ello, cada vez que renderizaba para Colorway, Modo se cerraba automáticamente. Una vez invertidas las normales se arregló el problema.
- Estaría bien poder guardar looks dentro de Colorway para futuros proyectos. Digamos que trabajo solo en la cabeza de este personaje, creo varios looks y los presento a un cliente. Me gustaría que si mas tarde trabajo en todo el cuerpo, poder aplicar los mismos looks que anteriormente apliqué a la cabeza.
Problemas de bleeding en Mari
En algunas ocasiones podemos encontrarnos con que Mari realiza un mal texture bleeding. A veces lo hace de forma muy discreta y en otras ocasiones simplemente no lo hace.
Cuando esto ocurre, lo más eficaz es forzar a Mari para realizar el texture bleeding.
Sólo es necesario seguir un par de pasos para solucionar este incómodo problema.
- Selecciona la opción "Toggles on/off whole patch project.
- Ahora click derecho encima del patch o patches y selecciona "Bleed patch edges".
- Esto debería de solucionar la mayor parte de problemas relacionados con texture bleeding.
Procesamiento rápido de Lidar
Procesar Lidar para ser utilizados en producción es una tarea generalmente tediosa, especialmente cuando hablamos de Lidar de entornos, compuestos normalmente por muchos millones de polígonos, generando point clouds que cuesta muchísimo mover.
Para limpiar este tipo de scans 3D, lo mejor suele ser utilizar las herramientas propietarias que vienen con los escáneres 3D, aunque en ocasiones son bastante complejas de utilizar y muy poco intuitivas.
Por no hablar de que en la mayoría de las ocasiones nos envían los Lidar a los estudios y tenemos que trabajar con ellos "a pelo" con las herramientas básicas que utilizamos en nuestro día a día.
Si hablamos de Lidar muy complejos, no nos quedará otra que emplear una buena parte de nuestro tiempo en limpiar y organizar todo el material. Pero si hablamos de Lidar sencillos, no muy densos y de entornos sencillos, props o personajes, quizá podamos procesarlos de forma muy sencilla y rápida utilizando herramientas "mainstream".
La herramienta que más me gusta para estos menesteres es MeshLab. Es rápida, sencilla, fácil de utilizar y open source.
- Importa tu Lidar en MeshLab. Puede leer los formatos de archivo mas comunes.
- Este Lidar tiene unos 30 millones de polígonos. Si hacemos un close up podemos ver la cantidad de detalle que tiene.
- La opción más apropiada que he encontrado para reducir el número de polígonos se llama Remeshing, Simplification and Reconstruction -> Quadric Edge Collapse Decimation.
- En sus opciones, la única que nos interesa es Percentage reduction. Si ponemos 0.5 reducirá la cantidad de polígonos al 50% y así sucesivamente.
- Tras unos pocos minutos, realmente rápido, pasamos de 30 millones de polígonos a 3 millones.
- Finalmente basta con exportar el Lidar como .obj e importarlo en cualquier software. En este caso en Nuke.
Otro software que nos viene muy bien para procesar scans 3D es Zbrush. El problema de Zbrush es que gestiona muy mal la memoria, y trabajar con Lidar es prácticamente imposible. Si nos viene mejor para trabajar con Lidar ya procesados previamente en MeshLab o con 3D scans generados mediante photogrammetry.
- Es muy común encontrarte problemas de memoria en Zbrush cuando intentes abrir point clouds muy densos.
- Para intentar solucionar este problema, ejecuta Zbrush como administrador y después aumenta la cantidad de memoria utilizada por el programa.
- En este caso estoy importando un Lidar ya procesado en MeshLab de 3 millones de polígonos.
- En el menú Zplugin -> Decimation Master, podemos reducir el número de polígonos sin perder calidad en el modelo. Para ello debemos introducir un valor en el porcentaje. El resultado será el tanto por ciento del modelo original.
- El siguiente paso es darle a la opción Pre-Process Current. Este proceso tardara varios minutos, dependiendo de la complejidad del Lidar y de la capacidad de tu máquina.
- Una vez terminado, hay que darle a la opción Decimate Current.
- Una vez terminado el proceso, se generará el modelo decimado con el porcentaje de polígonos indicado.
HDRI animados con Red Epic y GoPro
Recientemente nos encontramos con la necesidad de iluminar un personaje muy reflectivo (o reflectante) en un entorno cuya iluminación cambiaba constantemente.
El personaje sería creado completamente en 3D pero por supuesto habría que integrarlo en un footage dado, donde las fuentes lumínicas (prácticas, es decir, reales), cambiarían de intensidad y temperatura de forma rápida.
Además estamos hablando de un plano secuencia muy largo, sin cortes, donde el personaje se ve afectado por el entorno de forma ininterrumpida.
En esta situación, esta claro que un HDRI equirectangular convencional, no sería suficiente para integrar el personaje, ya que los constantes cambios de iluminación no se registrarían en el mapa panorámico.
Spheron
La primera solución real, y probablemente la mejor y más adecuada es utilizar un Spheron. Por supuesto si consigues comprarlo o alquilarlo a tiempo, cosa que se presenta cada vez más difícil.
Descartada la opción del Spheron, lo siguiente era realizar diferentes HDRI equirectangulares, uno para cada condición lumínica diferente y animar las transiciones entre ellos a medida que el personaje se mueve por el set.
En algunas ocasiones esto funcionaba bien, pero en otras, especialmente cuando había elementos que parpadeaban, luces que cambiaban de color rápidamente, etc, múltiples HDRI no eran suficiente.
Lo que realmente necesitábamos eran HDRI animados en tiempo real, es decir, recogidos mediante video .RAW y diferentes exposiciones en el set de rodaje.
Método convencional
La solución parecía más o menos clara, montar 3 reflex digitales de las que normalmente utilizamos (Canon 5D Mark III o Nikon D800) en un soporte creado por nosotros mismos que calculase el overlapping de las cámaras (entorno al 33%), cada una de ellas con lentes ojo de pez.
De esta forma podríamos registrar la información lumínica del set en tiempo real, simplemente grabando video.
Pero claro, ni la Canon 5D Mark III ni la Nikon D800 graban en formato .RAW, todas graban comprimiendo, aplicando un espacio de color, y por supuesto, ninguna graba video con multiexposiciones.
Red Epic
Por descarte, llegamos a la conclusión que lo que necesitábamos era el mismo setup de las reflex digitales, pero utilizando cámaras Red Epic. Lo malo de esta idea, es que tres cámaras Epic más tres lentes ojo de pez, es un setup muy caro para trabajo survey de set de rodaje, además que montar todo eso en un soporte creado por nosotros, montado a su vez en un steady cam, es algo muy pesado para poder caminar por un set enorme.
Finalmente dimos con la tecla, y la solución salio por si sola.
Todos sabemos que los HDRI para iluminación no necesitan ser perfectos, de hecho, nunca lo son, necesitan ser funcionales. Así que no nos importaría tener un poco de distorsion en nuestros HDRI con tal de abaratar el setup y facilitar la experiencia de recogida de información.
De esta forma, utilizamos una sola cámara Red Epic, con un objetivo 18mm.
La montamos en un soporte creado por nosotros mismos, en cuyo extremo opuesto colocamos una bola cromada de akromatic, de 25cm de diámetro.
Esta bola permite recoger mas de los 180 grados que recogería un ojo de pez, de hecho recoge alrededor de 220 - 240 grados.
Como sabéis, la Red Epic permite grabar video en .RAW y recoger multiexposiciones simultáneamente. Grabamos 5 exposiciones diferentes a 4k para recoger la información lumínica.
Posteriormente transformamos el video en Nuke para convertirlo en un panorama equirectangular animado.
Finalmente combinamos todas las exposiciones y voilá, ya teníamos nuestro HDRI equirectangular animado para iluminar nuestro personaje.
Esto nos permitió iluminar el personaje de forma rapidísima, con resultados muy buenos y precisos, y con unos tiempos de render prácticamente ridículos.
Utilizando luces 3D jamás hubiésemos conseguido la misma precisión, ni la misma calidad en los reflejos, y muchísimo menos, los mismos tiempos de render.
De momento no puedo mostraros nada de esto, pero si quiero contaros otras pruebas que hicimos y que creo pueden ser muy interesantes.
GoPro
Durante este proceso que he descrito anteriormente, tuvimos que hacer varias pruebas en el set, en diferentes localizaciones, algunas de ellas de difícil acceso para una persona de 1.85cm
Tuvimos unos días para realizar las pruebas, cuando se estaba construyendo el set, y por aquel entonces aun no disponíamos del equipo necesario, pero queríamos empezar a realizar pruebas y enviar el material al estudio, para que se empezaran a organizar con todo lo relacionado con el método de trabajo.
Decidí hacer los tests con una GoPro Hero3 Black Edition.
La cámara es muy pequeña, ligera y manejable. Por supuesto no graba .RAW, pero se le puede aplicar un perfil de color flat, para que no haga un bake del espacio de color que utiliza la cámara.
Graba en 4K y tiene control manual sobre el balance de blancos. Para nuestros tests, era la herramienta perfecta.
La montamos en una base de akromatic, utilizando un soporte de Joby, y en el otro extremo de la base colocamos una bola cromada de akromatic de 25cm.
En cuanto a la postproducción para generar los mapas panorámicos equirectangulares, seguimos el mismo método que teníamos pensado para la Red Epic, creando así templates en Nuke para agilizar el trabajo.
Digamos que esto era una simulación del trabajo final, pero que nos sirvió para darnos cuenta de que todo iba a funcionar bien.
Incluso hicimos pruebas de render, y todo parecía funcionar a la perfección. Obviamente aquí no estamos generando true HDRI, ya que no grabamos multiexposiciones como si haríamos con la Red Epic, pero como pruebas que eran, no se podía pedir mas.
No sería una opción descabellada para proyectos indies o de bajo presupuesto.
Footage original capturado con GoPro + akromatic kit
En este caso, mi presencia en el centro de la bola no ayuda demasiado, aunque las fuentes lumínicas en esta ocasión son cenitales y tampoco perjudica demasiado. De todas formas con la utilización de un steady cam solucionamos este problema, al menos, lo redujimos considerablemente.
Nuke
El trabajo en Nuke es muy simple, basta con hacer un spherical transform del footage.
Para las distorsiones laterales se puede pintar con rotopain y tratar de corregirlas, pero en general no son un problema.
Resultado final utilizando las imagenes de GoPro
GoPro + akromatic kit
Referencias para texturas
Cuando estás recogiendo referencias para texturizado, es muy importante mantener la coherencia entre todas y cada una de las fotografías pertenecientes a una misma secuencia.
Estos son algunos de los puntos que no deben de escapársete cuando te dediques a esta tarea.
- Cubre absolutamente todo. Empieza por el detalle general para pasar al detalle concreto.
Si por ejemplo necesitas recoger referencias para un actor digital, empieza fotografiando el cuerpo completo. Después pasa a fotografiar la cabeza, torso, piernas, dientes, manos, etc.
Cada parte del cuerpo es parte de una secuencia de muchas fotografías. - Utiliza siempre un trípode. El detalle y la definición en las fotografías es extremadamente importante. No solo en condiciones de escasa iluminación, necesitarás un trípode siempre.
- Al principio de cada secuencia toma fotografías con cinta métrica al lado del sujeto, siempre es muy importante tener la información relativa y absoluta de todo lo que fotografías.
- Necesitarás dos tipos de fotografías. Por un lado fotografías polarizadas para texturizado, así que no olvides tu filtro polarizador y papel polarizado para todas tus fuentes de luz.
Por otro lado necesitaras fotografías no polarizadas para capturar todo el detalle de superficie, que vendrá genial como referencia para los mapas de desplazamiento. - Al principio de cada secuencia fotografía una carta de color calibrada. En cada set de fotos, en cada close-up, siempre. Es importantísimo para calibrar el balance de blancos y mantener coherencia entre todas las fotografías de una secuencia y entre diferentes secuencias.
- La carta de color siempre se sitúa frente al elemento fotografiado, sin que le afecte la luz directa o las sombras. Si la iluminación cambia entre secuencias de fotos, es necesario volver a recoger la información de la carta de color.
- Si estas recogiendo información en un set natural/urbano, etc, utiliza siempre un dispositivo GPS que pase la información de localización a los meta datos de la imagen. Es vital en caso de que necesites volver al mismo sitio otro día.
- Utiliza brackets de unas 3 exposiciones diferentes para cada foto. Combinarlas en un solo HDR ayudará a crear una imagen mucho mas rica en detalles, especialmente en zonas oscuras.
- Si es posible, utiliza una base rotatoria calibrada, con 8 o 16 angulos de rotación. Especialmente util para actores digitales y props.
Recoge la información de posición de trípode, y la información relativa respecto a la base giratoria. Será muy útil para crear cámaras virtuales y alinear los objetos 3D, con las cámaras. De esta forma se pueden proyectar imagenes con muchísima precisión.
Character lighting
Self Portrait by Rembrandt van Rijn (circa 1640)
En contraste (literalmente y metafóricamente) character lighting se podría definir como la técnica de iluminación que intenta resaltar las características específicas de un sujeto, revelar detalles y expresar algunas de sus cualidades únicas a través de la iluminación.
Por ejemplo, un personaje falso o hipócrita, podría ser iluminado de tal modo que parte de su rostro esté siempre oculto en las sombras.
La cantidad de recursos simbólicos que pueden utilizarse en esta etapa, hace que sea un proceso mucho más creativo que simplemente la técnica beauty lighting de la que hablamos con anterioridad.
Es posible contar más cosas relacionadas con la historia del personaje que simplemente mostrarlo de forma bonita.
Si ponemos como ejemplo el retrato de Remrandt de arriba, y lo comparamos con el retrato de abajo, podemos observar muchas diferencias, y ambos retratos nos cuentas historias muy diferentes pese a ser ambas pinturas del mismo sujeto, Rembrandt.
Los cuadros tienen unos 20 años de diferencia, pero simplemente fijándonos en el estilo, la composición y la luz, podremos darnos cuenta de cuanto había cambiado la vida de Rembrandt.
En el retrato de abajo, Rembrandt estaba en bancarrota, forzado a vender su casa y pertenencias, había perdido a su mujer por culpa de la tuberculosis, etc.
En el retrato de arriba, era un artista de renombre, con éxito, alrededor de 1640.
La luz es suave, opulenta, define con detalle las vestiduras y tiene una pose intimidatoria, emulando el retrato de Tiziano de 1542.
En el retrato posterior, vemos a un Rembrandt indigente, desposeído, cuyas ropas apenas están definidas y se mantienen en penumbra, ya no son una representación de su estatus.
La pose y el encuadre son más introvertidos, es casi como que el marco domina al sujeto y la luz dura, de un solo foco lumínico, apunta directamente al rostro del artista, preocupado, abatido.
Podemos ver como la iluminación dicta lo que el autor quiere mostrar y lo que quiere ocultar, para guiar al espectador a través de la imagen. El estilo visual ayuda a la descripción narrativa.
Self Portrait by Rembrandt van Rijn (circa 1661)
Pablo Picasso by Irving Penn (1957)
El retrato de Picasso está iluminado siguiendo el típico método utilizado por Irving Penn, una fuente lumínica suave, generalmente una ventana cercana al sujeto.
El abrigo de Picasso es negro, y el sombrero de ala ancha contribuye a crear sombra en el lado derecho del sujeto, enmarcando el ojo izquierdo.
La utilización de objetos para crear zonas de penumbra, significa que incluso utilizando una fuente lumínica suave y dispersa, la imagen tendrá suficiente contraste, y por lo tanto, será atractiva visualmente.
Un rango amplio de tonos se puede apreciar en la imagen, y gracias al ángulo de la luz, detalles como arrugas en la piel, se pueden leer a la perfección.
Si comparamos esta imagen con la que vimos en el apartado de beauty lighting, podremos comprobar como la angulosidad de la luz es fundamental a la hora de capturar detalles de textura.
Marlon Brando in "The Godfather" by Gordon Willis (1972)
Marlon brando in "Apocalypse Now" by Vittorio Storaro (1979)
Esta dos imágenes de Marlon Brando, de sus dos películas más icónicas, demuestran como la iluminación puede describir el personaje y la narrativa.
En El Padrino, el cinematógrafo Gordon Willis iluminó a Brando desde arriba, con luz cenital. De este modo los ojos, y gran parte de su personalidad, están ocultos para los espectadores.
Su cara, se convierte casi en una calavera, o en una máscara, como corresponde al jefe de la mafia (estar tapado, oculto). Willis, quien siempre ha iluminado con predilección por la oscuridad, eligió en este caso resaltar de sobremanera la cabeza y la mano de Brando, dejando el fondo prácticamente negro, para centrarse únicamente en lo verdaderamente importante. Ningún detalle superfluo ha sido iluminado aquí.
El rol de Brando en Apocalypse Now es también un tanto misterioso. El Coronel Kurtz representa la falta de humanidad en la jungla, y el cinematógrafo Vittorio Storaro lo ilumina acorde con la situación.
La luz le viene de forma frontal, para irse difuminando a través de su rostro. Al final, su cabeza se mezcla con el fondo, hasta perderse en un solo componente.
En la técnica beauty lighting, se hubiese añadido una rim light, para separar el sujeto del fondo y definir su silueta, pero en este caso, la iluminación es un instrumento con más peso narrativo que estético.
Liv Ullmann and Bibi Andersson in "Persona" by Sven Nykvist (1966)
Hasta ahora, todos los ejemplos de character lighting que hemos visto, tienen mucho contraste, sombras muy marcadas, penumbra, etc.
El cinematógrafo Sven Nykvist iluminó la película Persona de Ingmar Bergman de una forma completamente diferente.
Utilizó un tipo de iluminación muy difuso y suave, permitiendo que el espectador lea las actuaciones faciales de las actrices Ullmann y Andersson.
Aquí la narrativa vuelve a ser protagonista, ya que que cuenta la idea de dos personas, ya sea reflejando dos mitades en una sola persona o mezclando personalidades. Esto obviamente requiere de un tipo de iluminación que ayude al espectador a leer las actuaciones de las actrices, por eso se eligió una luz global y difusa que permita ver las similitudes entre ambas.
Orson Welles and Charlton Heston in "Touch of Evil" by Russell Metty (1958)
Este fotograma de Touch of Evil, deja al espectador sin dudas de quien es el héroe y quien es el villano.
La iluminación en el Capitan Hank Quinlan (Orson Welles) deja la mitad de su cara en sombra, ocultando cosas. Por el contrario, el héroe de la película, Ramón Miguel Vargas (Charlton Heston) está iluminado de forma que su rostro se muestra por completo, tipo beauty lighting. Sus ojos son perfectamente visibles, al contrario que los de Welles.
Generalmente los villanos tienden a apartarse de la luz, a permanecer ocultos entre las sombras. Los héroes suelen estar más iluminados que los villanos, ya que por lo general, no necesitan ocultar nada.