Os dejo el trailer de promoción de nuestro próximo curso online “Katana Fastrack.”
Muy pronto en elephant vfx.
En mi blog personal, llevo un tiempo escribiendo posts sobre como utilizar Houdini como scene assembler. Posts cortos con contenido muy sencillo, y empezando prácticamente desde cero. Iré recogiendo toda esa información en elephant vfx, y por supuesto, con el tiempo seguiré escribiendo al respecto. En esta ocasión, aumentando dicha información, voy a hablar rápidamente sobre como exportar volumes desde Houdini hacia otras apps 3D, o para ser utilizados en el propio Houdini con renders de terceros, como Arnold render.
Para ilustrar el ejemplo, he creado esta simple nube que vemos más abajo, utilizaado algunas herramientas de volumes en Houdini. Lo que pretendo es exportar un vdb para ser utilizado como digo dentro de Houdini con Arnold render, o en cualquier otro software 3D y cualquier otro renderer.
Una vez renderizado de forma correcta, obtenemos el render qu eilustra este ejemplo.
Los suscriptores de elephant vfx pro, tenéis un video de 25 minutos donde explico estos conceptos con mayor detenimiento. Podéis acceder al contenido desde vuestra web.
¿Qué es un scene assembler?
Un scene assembler, por definirlo de forma muy primaria, podríamos decir que es un contenedor, un recipiente. Un software donde recolectamos todo el material creado que formaría parte de un plano, o de una secuencia completa. Estamos hablando principalmnete de assets, animaciones, fx, cámaras, etc. Y lo ponemos junto para trabajar el look de todo ese material, para posteriormente iluminar los planos, renderizarlos y enviarlos al equipo de compositores.
Es decir, un scene assembler no es un software DCC donde creamos contenido, si no donde utilizamos el contenido ya creado, para darle vida en cuanto a los requerimientos del plano y secuencia se refiere.
Las tareas principales que vamos a realizar en un scene assembler, son las de look-dev, lighting y render, aunque también podemos realizar otras como layout, set dressing y pre-compositing.
La característica principal que define a un scene assembler, es que trabaja de forma procedural y no destructiva. Lo que llamamos “streamlined”. Siguiendo una serie de jerarquías y órdenes definidas por el usuario, vamos creando diferentes opciones de look, lighting, etc. en función de las necesidades del plano. Si en cualquier momento necesitamos realizar un update de cualquier contenido del plano, bien sea una luz, un personaje, un fx, una cámara, etc. todo el trabajo realizado hasta el momento se actualiza de forma automática, no necesitamos rehacer o reasignar procesos ya establecidos.
Todos estos procesos, que pueden ser muy diferentes, como asignación de shaders, atributos de render, etc. pueden definirse en base a la secuencia y reutilizarse en el resto de planos, sin necesidad de volver a crearlos. De esta forma, estaríamos compartiendo exactamente los mismos procesos en planos que tengan las mismas necesidades. O por dedirlo de otra forma, estaríamos creando y reutilizando templates, lo que nos permite estandarizar la forma en la que trabajamos en cada una de las secuencias de lighting, o incluso a nivel global del show, en cuanto a tareas de look-dev e ingestión se refiere. Estandarizado, algo vital en cualquier facility de efectos visuales.
Esto que hemos contado hasta el momento, no es poco si comparamos las tareas de look-dev y lighting con un software 3D convencional. Pero hay más, como por ejemplo lo que yo llamo “process on demand”. Los diferentes procesos, solo ocurren cuando y donde necesitamos que ocurran. Para empezar, un scene assembler es capaz de cargar una cantidad ingenete de datos, algo que es común en casi cualquier secuencia hoy en dia en proyectos “high end”. Imaginemos una ciudad futurística, con cientos de assets, cientos de luces, miles de texturas, etc. Mover todo eso en un software convencional es prácticamente imposible sin desarrollar herramientas complejas, algo al alcance de pocos. En un scene assembler si somos capaces de hacerlo, gracias entre otras cosas a que los datos, pueden vivir en el script, pero no necesitan ser invocados en todo momento. Esto se denomina “deferring rendering”.
Gracias a estos procesos “on demand” podemos utilizar o no cualquier parte de la escena, tanto en viewport como en render, sin necesidad de passes, overrides, etc. Y en función del plano, podemos indicarle al render lo que necesitamos o no, siempre desde un master template que se mantiene constante en toda la secuencia. Gracias a este sistema de trabajo es muy fácil y rápido gestionar escenas complejas.
Siguiendo ciertos patrones de organización, nomenclatura, etc, podemos organizar los scripts de assembly para que cualquier actualización de un elemento de la escena, sea una actualización ciega, en muchos casos nisiquiera requiere abrir el software para obtener una nueva versión del plano. Todo esto se consigue gracias al sistema procedural de atributos, y al sistema de asignación de shaders, como digo, siempre de forma “streamlined” y siguiendo reglas.
Los scene assembler también permiten crear referencias y sistemas de publicado inteligente, que ayudan a trabajar de forma fluída entre los diferentes artistas y TDs dentro de una misma secuencia y potencialmente el show completo, llegando incluso a trabajar de forma paralela con networks referenciados.
¿Quién utiliza scene assemblers?
Absolutamente todos los vfx facilities, y la mayoría de boutiques medianas. Cualquier empresa de efectos visuales que trabaje en proyectos vfx high end, se va a encontrar en la situación de tener que realizar planos muy complejos, que sólo podrán ejecutarse si el software de render permite realizar ciertas tareas. Por ello, los grandes estudios de efectos visuales y de animación utilizan siempre algún tipo de scene assembler para sacar adelante sus producciones más ambiciosas.
¿Puede beneficiarse un estudio más modesto o un freelancer de un scene assembler?
Sin duda. Depende del tipo de trabajo, el contexto de tu empresa y un largo etc. En ocasiones puede que utilizar un scene assembler sea como matar moscas a cañonazos, pero a largo plazo incluso para un estudio de menos de 10 personas, los beneficios de basar su pipeline de finishing en reglas y templates es más que evidente.
¿Qué scene assemblers están disponibles en el mercado?
Hay varios scene assemblers en el mercado, además de algunos propietarios. Cuando yo trabajaba en MPC, o cuando llegué a Double Negative, no había ningún scene assembler comercial, y teníamos herramientas propietarias, desarrolladas durante años, para sacar adelante las difrentes secuencias de películas como Harry Potter, Narnia, Piratas del Caribe, Batman, etc. Posteriormente estos estudios, y otros para los que también he trabajado, han ido de forma gradual adoptando diferentes scene assemblers comerciales que están siendo desarrollados por terceros.
Foundry Katana
El scene assembler por excelencia. Desarrollado por Sony Pictures Imageworks durante años y ahora comercializado y desarrollado por Foundry. Al igual que Nuke o Mari, Foundry ha sabido poner al servicio de todos una herramienta propietaria, desarrollada en exclusividad para proyectos de efectos visuales y animación.
Katana es el scene assembler más extendido, utilizado por Sony, Weta, ILM, MPC, etc. No es el más sencillo de utilizar de todos, pero tampoco es muy complejo. Basta con recibir un training introductorio y tendrás suficiente para empezar a trabajar en planos.
El viewport de Katana ha mejorado mucho con los años, y ahora ya es posible tener visualización PBR, previsualizar volumes, etc. Con escenas complejas se vuelve lento e inestable, pero la realidad es que a nadie le importa la visualización en viewport, lo que importa es una buena gestión de la escena, y que responda rápido de cara al render. La visualización en viewport, al menos en vfx, es algo secundario.
La navigación de la escena es muy buena en Katana, prácticamente igual que en Nuke, rápida, efectiva, no se puede pedir más.
Katana también ofrece diferentes opciones de render, desde Renderman a Arnold, pasando por 3Delight, que además ahora viene instalado por defecto y se puede utilizar de forma gratuita para aprender.
Mi opinión personal, es que Katana es el mejor scene assembler disponible en el mercado, y si de mi depende basaría el pipeline de look-dev, lighting y render de cualquier estudio high end de vfx en Katana. El único problema, es que es muy caro.
Isotropix Clarisse
Clarisse es otro scene assembler muy utilizado en la industria, siendo sobretodo Double Negative su mayor cliente. ILM, Tippet Studios, ILP, etc. son también algunos de sus usuarios. Yo tengo el dudoso privilegio, de haber sido la primera persona en renderizar un plano con Clarisse para una película, Godzilla.
Lo mejor que tiene Clarisse, son sus herramientas para realizar tareas de layout y set dressing. Los sistemas de scattering e instanciado de Clarisse son simplemente geniales. Extremadamente sencillos de utilizar, rapidísimos y sobre todo, efectivos.
Clarisse es muy sencillo de aprender, mucho más que otros scene assemblers, lo que permite una productividad elevada a un equipo pequeño. Sin duda, mi software de elección para estudios medianos y pequeños.
El viewport de Clarisse es de lejos el mejor de todos, permitiendo una visualización de componentes de shading y lighting en tiempo real, incluso con escenas enormes y complejas. La navegación por otro lado, no es tan buena como en Katana, ya que se basa en “contexts” o carpetas. La funcionalidad es exactamente la misma, también permite crear atributos de render, reglas, jerarquías, etc, pero la visualización es diferente y más incómoda. Esto de todas formas, cambiará con la nueva versión Clarisse Builder.
Lo peor de Clarisse, en mi opinión, es que sólamente trabaja con su propio renderer. Esto no es necesariamente malo, es un buen render, pero yo al menos sigo prefiriendo Arnold. Por otro lado, por un precio muchísimo más bajo que Katana, obtienes un scene assembler, un motor de render y también un compositor 2D. Aunque para ser sinceros, no vas a realizar planos finales con este compositor (o si), pero al menos los lighters podrán hacer slap-comps sin ocupar licencias de Nuke.
Houdini
Houdini no es un scene assembler dedicado, no es una herramienta nacida para ser un scene assembler, pero ya que Houdini es una herramienta procedural, puedes sin duda montarte tu propio scene assembler. No es tan cómodo, ni tan fácil, ni lo hace tan bien como Katana o Clarisse, pero es factible. Yo mismo he trabajado en varios shows donde Houdini era el scene assembler para realizar todo el look-dev, lighting y render. Actualmente es de hecho el software que utilizo en mi empresa como scene assembler.
El viewport de Houdini no es muy bueno que digamos, especialmente utilizando renderers de terceros, pero es más que aceptable. Houdini también permite tener un script muy complejo con muchos assets, fx, etc. y sólamente invocar lo necesario a la hora de render. No es tan eficaz como Katana en este sentido, pero es mucho mejor que cualquir otro DCC.
En cuanto a opciones de renderer, Houdini viene con su renderer nativo Mantra, que está muy bien, especialmente para ciertas tareas como renderizado de volumes, pero en lineas generales, como motor para todos los aspectos de una producción, es inferior a Arnold o Renderman. Existen otras alternativas, como Arnold, Renderman, Vray, Redshift, etc.
El precio es quizás el punto más favorable al considerar Houdini como scene assembler, ya que exsiten difrentes alternativas muy económicas, y además de obtener un scene assembler, y un rederer muy competente, también tienes todo el potencial de Houdini para la creación de contenidos. La curva de aprendizaje es mucho más lenta que los scene assembler antes mencionados, pero cada vez hay más recursos para ayudarte.
En cuanto a gestión de la escena, moverse por Houdini es en mi opinión mucho mejor que en cualquier otro DCC, pero inferior al sistema nodal de Katana, o potencialmente al nuevo Clarisse Builder.
Las herramientas de Houdini para generar point clouds, scatterers, instancias, digital assets, etc. son también un factor importante a la hora de contemplar Houdini como alternativa a Katana o Clarisse. Si bien estas no funcionan con todo su potencial con renderers de terceros, cada vez es mayor el soporte. Houdini también cuenta con un compositor 2D que permite a los lighter realizar slap-comps sin necesidad de ocupar licencias de Nuke.
Gaffer
Gaffer es un Katana simple. Cuando digo simple no me refiero a que puedas realizar menos tareas con el, si con a la simpleza que carateriza la forma de hacer las cosas dentro de Gaffer.
Gaffer es el scene assembly desarrollado internamente en Image Engine, y utilizado en todas sus producciones desde haces años. Además Gaffer es open source y gratuito. Lo que le convierte en un producto muy atractivo.
Es muy sencillo de utilizar, y a dia de hoy soporta diferentes renderers como Appleseed, Arnold o 3Delight, con otros motores siendo portados en un futuro.
La gestión de la escena es para mi la mejor de todos los nombrados hasta el momento, o como mínimo al mismo nivel que Katana, pero todo presentado de forma más limpia, más simple. El viewport es inferior a todos los anteriores, pero como comentaba más arriba, la visualización de viewport es algo secuandario cuando trabajamos en monstruosas escenas.
En Gaffer se pueden utilizar sistemas de instanciado, crear point clouds, etc. Aunque no está tan bien presentado de cara al usuario como por ejemplo en Clarisse, aunque la tecnología está ahí. Y es que John Haddon e Image Engine ofrecen Gaffer de forma gratuita, pero muchos de los recursos internos utilizados en Image Engine o Cinesite, no están disponibles. Aun así, es perfectamente posible montar un pipeline de look-dev y lighting con Gaffer out of the box.
Más o menos este es el panorama actual en cuanto a scene assembler se refiere. Por supuesto hay herramientas propietarias de las que no voy a hablar, y quizás haya algún otro scene assembler por ahí en desarrollo menos conocido. Pero estos cuatro mencionado aquí son los que te vas a encontrar si un dia trabajas para un big facility, o los que puedes incorporar a tu flujo de trabajo en un boutique o empresa más pequeña.
Por último, comentar que Maya, como DCC estandard en la industria de los vfx, aunque no sea un scene assembler y diste mucho de comportarse como tal, en las últimas versiones han sido implementadas ciertas característica para facilitar el trabajo con escenas muy grandes. Por ejemplo los alembic gpu caches, que permiten una carga mucho mayor de assets en una sola escena. Yo los estoy utilizando actualmente y son muy útiles. Por supuesto vestir escenas utilizando ass files de Arnold también es de gran utilidad a la hora de trabajar el dressing de un plano complejo. En resumen, poco a poco queda patente la necesidad de scene assemblers en muchas producciones, ya que los DCC van incorporando en cuanto puedes ciertas características que estamos acostumbrado a ver en scene assemblers. Y además, cada vez son más estudios de vfx de tamaño medio los que comparten secuencias de blockbusters con facilities mayores.
En elephant vfx, tenemos un curso muy completo sobre Isotropix Clarisse, donde mostramos prácticamente todo lo que ofrece el software y diferentes metodologías de trabajo. En cuanto salga de forma pública Clarisse Builder, también prepararemos una formación específica sobre look-dev, lighting y render. Hemos empezado un programa de colaboración con Isotropix para ser evangelistas de sus productos, así que tendréis más formación al respecto.
En cuanto a Katana, por el momento no tenemos ningún tipo de formación, pero ya estamos pensado en un curso que se llamará Katana Fastrack, donde mostraremos como crear un pipeline sencillo de look-dev, lighting y render. Está en nuestra cola de cursos, estad atentos.
En el blog de Xuan Prada podéis encontrar varios videos introductorios a Gaffer, donde podéis ver los primeros pasos en el software. Se postearán más videos sobre Gaffer en el mencionado blog.
También en el blog de Xuan hay una serie de posts sobre la utilización de Houdini como scene assembler. De momento solo se mencionan cosas muy básicas, pero se irá posteando más información de forma periódica.
Tanto en el blog de elephant vfx como en los cursos online o talleres presenciales, hemos hablado en un sin fin de ocasiones sobre diferentes estrategias para separar renders de cara a facilitar la labor de composición, de modo que podamos dotar de mayor control al equipo de compositores que se encargará de recoger los planos de lighting y de finalizar el plano antes de pasar a DI.
Hemos hablado de render passes, render layers, AOVs, LPEs, light groups, etc. Por ello, a menudo me preguntan cual es la forma correcta de renderizar un plano, o cual es el método que yo utilizo.
La respuesta, como casi todo lo que realizamos en VFX es la misma, depende. Depende del show, depende de la secuencia, depende del plano, depende de los assets de los que se compone el plano, de los FX, de las preferencias del supervisor 2D, del visual effects supervisor, etc.
En el caso de que sea yo quien decide, la respuesta es clara, el setup más sencillo, el más rápido de montar y el que ofrezca lo mínimo que requieren los compositores. Como norma general no me gusta facilitar un control absoluto por el mero echo de tener la posibilidad de hacerlo. Si no hay una justificación clara, no necesito generar unos setups enormes que lleven mucho tiempo tanto de montar en 3D como de reconstruir en 2D. Además mi ideal de trabajo en VFX es que el 3D sea lo mejor posible, que el trabajo de composición sea para mejorar el 3D, no para arreglarlo.
Aunque raramente sea yo quien va a decidirlo, aunque actúe como supervisor de lighting. La razón de ello, es que siempre consulto al supervisor de 2D, o al sequence supervisor, o al compositor encargado del plano en última instancia. No siempre, pero en general me gusta que quien vaya a recoger el trabajo que sale de lighting, pueda opinar sobre el material que le gustaría recibir, y en la medida de lo posible y dentro de los estándares de ambos departamentos, hacer todo lo posible para facilitarle todo aquello que considere necesario.
Lo que procuro siempre es, tras analizar considerablemente la secuencia y el plano, sugerir el material a proporcionar por lighting al departamento de composición. Cuando se trata de look-development, siempre trabajo con AOVs tanto directos como indirectos. Me lo llevo todo a Nuke y ahí realizo el offline look-dev. De estar forma puedo trabajar muy rápido y crear diferentes versiones en un tiempo relativamente reducido.
Cuando se trata de un plano de lighting, si es posible y si consigo convencer al compositor, y sobretodo, si el 3D tiene una calidad excelente, no me gusta proporcionar AOVs. En estas ocasiones me gusta proporcionar light groups. Considero que los light groups son mucho más sencillos de utilizar que los LPEs y aunque no ofrezcan un control total, opino que ofrecen un control más que suficiente para poder satisfacer tanto a lighting como a compositing.
De nuevo, si puedo permitirme no dividir en componentes los light groups, prefiero no hacerlo. Como decía, si el 3D es bueno, prefiero que los compositores no lo toquen. De ser este el caso, los light groups que renderizo son los beauty de cada una de las luces que utilice en el plano. Aquí abajo muestro un ejemplo muy sencillo de como realizar el setup de light groups en Maya y Arnold. En elephant vfx procuramos siempre hablar de técnicas, de sistemas de trabajo, no de software. Así que recuerdo a los lectores, que los light groups son una técnica agnóstica de software, puedes extrapolar todo lo que estoy comentando en este post a cualquier renderer.
Esta es la escena que estoy utilizando para esta demo. No es un plano de lighting, no hay tiempo para preparar algo tan complejo. Pero hagamos un ejercicio de imaginación y supongamos que esta escena es un plano de lighting. En el plano tenemos un personaje, un fondo, y varias luces. Suficiente para ilustrar este texto.
En las opciones de AOV light group de cada luz, tenemos que nombrar al grupo donde queremos incorporar una luz determinada. Podemos agrupar varias luces si así lo creemos oportuno, de hecho es una práctica muy habitual. Por ejemplo, en el caso de que estemos iluminando un estadio de fútbol, quizás podríamos querer agrupar todos los focos que colocados en la parte superior. En otras ocasiones, especialmente cuando tenemos setups más sencillos, lo más común es individualizar cada una de las luces. Para ello necesitamos crear un AOV light group para cada luz. En las imágenes de más abajo vemos como voy nombrando light groups para las diferentes luces.
Una vez nombrados todos los AOV light groups, el siguiente paso es crear esos AOVs en el render. Como decía, de momento estamos mostrando como crear los beauties. Para ello, basta con añadir custom AOVs con el prefijo RGBA seguido del nombre de cada uno de los AOV light groups.
Como nota adicional. En este ejemplo concreto, he tenido que añadir dos AOVs extras para emission y transmission. La razón es que una de las luces utilizadas en la escena y que contribuyen a esos componentes, no es una luz propia de Arnold, y el sistema de AOVs no funciona correctamente del todo. Si fuese una luz Arnold, no hubiese hecho falta añadir estos dos AOVs, la información estaría incluida en los beauties. Procurad no utilizar luces de Maya.
Con este setup de RGBA por luz, los compositores deberían tener un amplio control sobre el look final de plano sin necesidad de cambiar el look particular de los assets.
En el caso de necesitar aun más control, y siempre que esté justificado, podemos mediante un setup sencillo separar los componentes que creamos oportunos para cada uno de los light groups.
En este ejemplo estoy separando los componentes diffuse, specular, sss, transmission y emission de cada una de las luces del plano. Si los assets del plano utilizasen otros componentes de shading, bastaría con añadir estos. Sinceramente, a menos que el look final del plano no esté para nada claro, o estemos realizando look-dev del plano, no veo razón justificada para separar los componentes de shading en direct, indirect y albedo. Si quisiéramos hacerlo, por supuesto que podríamos. Pero hay que tener en cuenta la cantidad de AOVs por luz que acabaríamos generando, y por supuesto, las probabilidades de cometer errores tanto en el setup de lighting como en la reconstrucción en 2D también aumentarían. Como digo, muy perdidos tenemos que estar en el look-development del plano para necesitar un setup más complejo que componentes de shading per light group.
El setup básico en Nuke siempre es aditivo, y el control que se otorga a los compositores es suficiente como para reinterpretar el plano con mucha facilidad.
Pues ya está, poco más que añadir a este post. Este es el setup de light groups separados por componente de shading que más utilizo en las secuencias que superviso. Son muchos los planos que he iluminado sin ni siquiera separar los componentes de shading, sólo separando las luces y los beauties de las mismas. Siempre tratando de mantener los setups lo más sencillos posibles, justificando todo el material creado y dándole mucha importancia a la calidad del render 3D, para que el trabajo de 2D sea siempre para mejorar, no para arreglar lo que ha salido mal del 3D.
Los suscriptores de elephant vfx pro podéis descargaros las escenas de Maya y Nuke para analizarlas.
Desde hace unos años, utilizamos Cryptomatte para crear todo tipo de IDs, mattes, etc. Sin duda, la mejor y más eficaz forma de realizar este tipo de máscaras. Pero en ocasiones, debido a ciertas limitaciones que nos podemos encontrar en nuestra producción, no nos queda otra que recurrir a IDs de "toda la vida".
En este video te muestro como realizar un setup de IDs basado en custom AOVs.
En alguna ocasión anterior ya hemos hablado sobre el uso de Ricoh Theta para tareas de image acquisition en efectos visuales. En ese video ya comentaba algunos de los puntos fuertes y débiles de utilizar un setup convencional vs un setup basado en Ricoh Theta. Te recomiendo echarle un vistazo.
En esta ocasión, he realizado un ejercicio de image acquisition, donde la fuente lumínica principal es muy potente, el sol, y por lo tanto, es muy importante capturar el mayor rango dinámico posible, para así poder representar de forma efectiva la situación lumínica capturada de forma virtual.
Los setups a comparar son
- Canon 5D Mark III + 8mm fish eye + panoramic head
- Ricoh Theta S + Manfrotto mini tripo
- Los dos anteriores se complementan con lighting checkers y macbeth chart.
Las imágenes capturadas con el setup tradicional. 6 ángulos (aunque podrían haber sido solamente 3). 7 exposiciones por cada ángulo con 2 stops de diferencia. En total 42 imágenes.
Settings de cámara
- ISO: 100
- Apperture: f22
- Mid exposure: 1/100
- 2EV apart
- Min exposure: 1/6400
- Max exposure: 0''6
- White balance, focus, etc = manual
Todos mis brackets están perfectamente alineados, ya que las fotografias se realizaron con un pano head. De esta forma no es necesario perder ni 2 minutos en Ptgui para hacer el stitching.
Las fotografías realizadas con Ricoh Theta, son completamente automáticas, no se pueden controlar de forma manual. Los settings generados son:
- Min exposure: 1/6400
- Max exposure: 1/100
El stitching en este caso, lo hago con Merge HDR Pro en Photoshop, ya que Ptgui no hace stitching de fotografías equirectangulares, (si rectilíneas y fish eye). Nunca deberías utilizar Photoshop para trabajo de datos, así que una vez generado el HDRI guarda como .exr y nunca más la abras en Photoshop.
Me llevo los dos panoramas a Nuke, para neutralizarlos en base a mis referencias. También para limpiar artefactos si fuese necesario, aunque en este caso he pasado olímpicamente de ello.
Si bajamos la exposición en viewport y analizamos el punto de mayor valor lumínico en la imagen, es decir el sol, veremos la brutal diferencia entre un panorama y otro.
- 5D Mark III = 431
- Ricoh Theta: 3.8
Esta información ya debería de ser una valiosa pista del comportamiento de un panorama u otro cuando creemos nuestros setup IBL.
Ya en Maya, creo dos setups de IBL diferentes, uno para cada panorama. Las diferencias son evidentes, especialmente en la densidad de las nombras y la distribución de la luz.
¿Eres suscriptor de elephant vfx pro? Descárgate el material utilizado en este post y analízadlo tranquilamente en tu casa.