On-set tips: Crear high frequency detail
Nota: Este post incluye contenido exclusivo para los suscriptores de elephant vfx pro. (enlaces al final del post).
En un post anterior ya mencionamos de la importancia del "high frequency detail" a la hora de escanear assets mediante técnicas de photogrammetry. En esta ocasión, explicamos como escanear assets cuando estos carecen de detalle de superficie y de detalle de color.
Es bastante común en cine tener que escanear props que se utilizan para rodar ciertas escenas, pero que en ningún caso salen en pantalla, ya que serán creados 100% de forma digital. Estos props, generalmente realizados con algún tipo de resina, no se pintan, se mantiene su color natural, ya que eso abarata la producción del propio pro.
Escanear mediante photogrammetry superficies sin ningún tipo de detalle, es por definición imposible. Primero, es muy difícil enfocar, ya que no existen puntos de referencia claros. Y segundo, el software de photogrammetry no podrá analizar puntos comunes entre las diferentes fotografías.
Supongamos que queremos escanear esta máscara, ya que necesita ser extendida de forma virtual. Como véis, es completamente blanca, sin ningún tipo de detalle de superficie. Necesitamos crear "high frequency detail". Este es un caso práctico de producción, similares situaciones ocurrieron por ejemplo en los sets de Batman o IronMan.
El equipo necesario es muy compacto. Basta con una DSLR y lente, tripode con soporte para el prop, y dos pinturas diferentes. Por un lado tengo un neutral grey para cubrir el prop, y por otro lado tengo una pintura verde para crear el detalle.
Con mi soporte especial y blu-tack puedo facilmente fijar el prop al tripode.
Con la pintura gris cubro por completo el prop. Con este color me aseguro una exposición mejor balanceada que con el color blanco original.
Una vez seca la pintura gris (se puede utilizar un secador de pelo para acelerar el proceso) paso a cubrir con puntos verdes toda la superficie, creando asi suficientes puntos de contacto para el software de photogrammetry y tambien para el enfoque de camara.
Una vez procesado el material fotografico, obtenemos un scan perfectamente valido para reproducir el prop de forma virtual con total exactitud.
Los suscriptores de elephant vfx pro podéis desde aquí acceder a un video donde expandimos estos tópicos.
Hard light / soft light / specular light / diffuse light
Nota: Este post incluye contenido exclusivo para los suscriptores de elephant vfx pro. (enlaces al final del post).
Hoy en dia tenemos la suerte de poder aplicar los mismos principios fotográficos y cinematográficos a nuestro trabajo como iluminadores en VFX/CG/. Por ello, constantemente hablamos sobre cinematografía, lenguaje cinematográfico y comunicación audiovisual. Hoy, vamos a hablar de algunos tópicos comunes en iluminación cinematográfica: hard light, soft light, specular light y diffuse light.
La diferencia entre hard light (luz dura) y soft light (luz suave) no radica en la luz, si no en la sombra. Cuando la sombra está perfectamente definida y opaca, hablamos de hard light. Cuando por el contrario, la sombra está difuminada, nos referimos al tipo de luz soft light. Cuanta más suavidad en la luz, más difuminadas y consecuentemente menos opacas serán las sombras.
¿Hay algún tipo de luz concreta que proporcione hard light o soft light? No. Cualquier luz puede ser hard o soft en función de dos factores.
- Tamaño: No sólo hay que tener en cuenta el tamaño de la fuente lumínica en si, si no la relación de tamaño entre la fuente lumínica y el sujeto a iluminar.
- Distancia: En relación a la posición de la fuente lumínica y el sujeto a ser iluminado.
Las ondas electromagnéticas (como la luz) se curvan con respecto a los objetos donde impactan. En el ejemplo de abajo, cuando la luz impacta en la pared, refleja y pasa recto, después se curva hacia el interior (esto es lo que se denomina difraction).
Cuando un beam (rayo) de luz impacta en un objeto, si el tamaño de la fuente lumínica es muy similar al tamaño del sujeto iluminado, los rayos pasan de forma paralela y se curvan ligeramente hacia el interior.
Si el tamaño de la fuente lumínica es más pequeño que el sujeto iluminado o está alejado del mismo, los rayos de luz apenas se curvarán, creando sombras duras y bien definidas.
Si la fuente lumínica es más grande que el sujeto iluminado y está situado cerca del mismo, los rayos de luz se curvan considerablemente, produciendo sombras suaves y poco definidas.
Si la fuente lumínica es mucho más grande que el sujeto iluminado y cercana al mismo, los rayos de luz se curvan tanto que llegan a juntarse y prácticamente las sombras no dibujarán la silueta del sujeto iluminado, siendo incapaces de identificar su forma o silueta.
- Si una fuente de luz muy grande se posiciona a mucha distancia del sujeto iluminado, su tamaño se verá alterado de forma relativa con respecto al sujeto, convirtiéndola consecuentemente en una fuente de luz pequeña, perdiendo asi su capacidad de generar sombras suaves. El ejemplo más claro es el sol. Es mucho más grande que la tierra, pero al estar a millones de kilómetros, se convierte en una fuente de luz muy pequeña, creando sombras duras. Cuando está nublado, la luz se filtra entre las nubes convirtiéndola otra vez en una fuente de luz grande, y por ello, generadora de sombras suaves.
Para resumir en dos lineas:
- Soft light = fuentes lumínicas grandes y/o cercanas al sujeto
- Hard light = fuentes lumínicas pequeñas y/o alejadas del sujeto
Specular light: Fuente lumínica con mucha potencia en el centro que poco a poco se degrada hacia el exterior. Como una linterna tradicional. Genera zonas muy expuestas y brillantes en el sujeto iluminado. Por ejemplo la típica luz de entrevista en un estadio de futbol o en un photocall.
Diffuse light: Fuente lumínica con la misma potencia distribuida sobre todo el área, tiende a iluminar al sujeto de forma compensada.
No confundir diffuse light con soft light. Siempre que hablamos de soft light nos referimos a sombras desenfocadas y suaves. Siempre que hablamos de diffuse light nos referimos a la distribución de la propia luz, en este caso, distribuida con equidad a lo largo de la superficie.
A continuación algunos ejemplos en 3D.
- En este ejemplo tenemos un personaje iluminado con una fuente lumínica pequeña, más pequeña que el propio sujeto, y situada de forma alejada con respecto al mismo. Resultado, hard light, sombras duras.
- En este ejemplo tenemos una fuente lumínica de tamaño considerable, similar al sujeto iluminado y colocada cerca del mismo. Como resultado, obtenemos soft light, sombras suaves.
- En este ejemplo tenemos una fuente luminica muy grande y colocada cerca del sujeto, como resultado produce extra soft light, y las sombras pierden completamente su dibujo, siendo extremadamente suaves.
- En la siguiente imagen, el sujeto está iluminado por el sol, que pese a ser una fuente lumínica gigantesca, su posición relativa con el sujeto la convierte en diminuta, produciendo asi hard light, sombras duras.
- Finalmente tenemos otro ejemplo de hard light, en este caso creado por un flash que no deja de ser otro tipo de luz muy potente y concentrada, cercana al sujeto fotografiado. Este efecto puede conseguirse en 3D reduciendo considerablemente el valor spread de las luces.
- A continuación ejemplos de specular light y diffuse light. (respectivamente).
Los suscriptores de elephant vfx pro podéis desde aquí acceder a un video donde expandimos estos tópicos.
Physically correct shaders
Physically correct shaders, sin paja y directos al grano.
Arnold es lo que llamamos un physically based render, aun así, te permite romper ciertos moldes para crear luces y shaders que no obedezcan necesariamente las reglas físicas. Sin embargo, si creamos physically based lights y shaders, podremos predecir los resultados a obtener en diferentes entornos lumínicos. Intenta, en la medida de lo posible, mantener tus shaders physically correct mientras look-deving.
Para logar este cometido, el energy conversion ratio necesita ser correcto en Arnold. Llevado a un ejemplo práctico, cuando ajustes los parámetros diffuse y specular de tus shaders, entre los dos han de sumar un resultado de 1 o menos. Por ejemplo, si tu diffuse value es 0.7 tu specular value debería ser 0.3 para mantener los shaders de forma physically correct. Si el ratio estuviere por encima de 1 obtendrías unrealistic highlights, que podrían traducirse en noise, fireflies o simplemente, tiempos de render inconsistentes y/o lentos. En esta misma ecuación, entrarían otros parámetros como specular 2, reflection, o backlighting. Por el contrario, en mi experiencia, si la contribución de sub surface scattering al ratio global supera 1 no presenta mayores problemas.
La excepción es cuando fresnel y fresnel affects diffuse están activados. En este caso, la compensación de diffuse y specular se calcula de forma automática por Arnold. Simplemente utiliza cualquier valor entre 0 y 1 en diffuse y specular, y preocúpate del resto de weights del shader sumados al diffuse weight.
Dicho esto, analiza la industria para la que trabajas y actúa acorde con sus reglas y principios, que deberían de regir tu trabajo. Si como yo, trabajas en cine, recuerda una de las principales normas que rige esta industria (la del cine, no la de los VFX). El cine no necesita ser realista, necesita ser creible.
On-set tips: High frequency detail
Otro consejo muy útil a la hora de capturar assets on-set. La importancia del high frequency detail (o el micro detalle). Cuando tenemos superficies con micro detalle resulta muy beneficioso a la hora de reconstruir el point cloud del que partirá la generación de geometría. ¿Porqué? Básicamente porque añadimos muchos puntos de control comunes entre diferentes fotografías, de esta forma, resulta mucho más sencillo (que no rápido) los cálculos que el software ha de realizar para generar dicho point cloud.
En este ejemplo, las condiciones de captura no eran demasiado buenas. Poca luz, cámara en mano sin trípode, viento y lluvia, etc. Con apenas 50 fotografías he obtenido un resultado muy bueno, perfecto para el remodelado de esta roca.
En cuanto a settings de cámara se refiere, fijaos que estoy utilizando un ISO poco recomendable 640 y una apertura no especialmente baja F8.
El shooting pattern no podría ser más sencillo. Casi todas las fotos realizadas desde la misma altura, como digo, solamente unas 50.
El tiempo para alinear el material apenas fue de 24 minutos. Sin embargo, la generación del point cloud llevó alrededor de 11 horas en mi iMac con calidad alta. Resultó en unos 9 millones de polígonos. Podría haber optimizado la escena eliminando gran parte del terreno (que no me interesa) pero quería la menor participación humana posible.
Teniendo en cuenta las condiciones, el output es bastante bueno. Gracias al high frequency detail.
Este es un asset que no necesita de topología cuidada, con una retopología automática en Zbrush tengo mas que suficiente.
El siguiente paso lógico es crear un buen UV mapping para poder utilizar posteriormente en Zbrush para re-proyectar todo el detalle de la roca original y extraerlo como displacement map. Tengo algunas distorsiones que afortunadamente no afectan en absoluto al comportamiento de la roca.
Algunos render test.
Los suscriptores de elephant vfx pro pueden descargar todo este material para su exploración detallada.
UV to Mesh
En este video tutorial os muestro como realizar tareas de re-topología de forma muy rápida gracias al script UV to Mesh. En esta particular demo trabajamos como utilizar un modelo creado en Marvelous Designer para crear ropa con topología perfecta en apenas unos minutos. Para posteriormente volver a simular en Marvelous Designer y transferir todos los nuevos detalles a la re-topología, y así tantas veces como necesitemos para crear diferentes versiones.
Gracias a David Muñoz Velázquez por el tip y por enseñarme a utilizar el script.
Nuke particles. Multitudes Lego
En esta ocasión os muestro como crear de forma extremadamente fácil y rápida, sistemas de multitudes para fondos, utilizando las partículas de Nuke. Para ilustrar el ejemplo, vamos a utilizar figuras Lego, que como bien sabéis, nos gustan mucho.
Este post contiene un video explicativo de más de media hora para nuestros suscriptores elephant vfx pro.
- Lo primero que necesitamos es modelar un geometry support o proxy donde pretendemos colocar el sistema de partículas. En este caso he modelado las gradas de un estadio, similar a la fotografía que acompaña este post. He separado las gradas en dos .obj uno los asientos en si, que servirán de emisor de partículas, y otro, los túneles y vallas de las gradas, que no emitirán ningún tipo de partícula, sólo son parte del decorado.
- Ahora necesitamos el "source" de las partículas, es decir, los sujetos que pretendemos que populen las gradas que acabamos de modelar. En este caso tenemos imágenes 2D de Lego, que gracias a que tienen su canal alpha, pueden ser fácilmente recortadas. Otra buena forma (mucho mejor) de realizar esto, sería realizando renders ortográficos de figuras de Lego. O en el caso de un plano de VFX, podríamos tener footage de actores en pantalla verde o azul, y fácilmente podríamos rotoscopiarlos para crear el mismo efecto.
- Ya en Nuke, leemos todas las figuras de Lego, activando la opción "premultiply" para utilizar el alpha de las imágenes en viewport.
- También necesitamos importar los dos .obj que forman las gradas del estadio.
- Conectamos ambos mediante un nodo scene para visualizarlos en 3D.
- Podemos emitir partículas desde todos los asientos de las gradas, o desde una selección que hagamos nosotros. Utilizando un nodo geoSelect podemos seleccionar vertex, faces o edges y guardar la selección. Muy útil por ejemplo, para crear diferentes sistemas de partículas. Digamos que queremos a los seguidores de un equipo con camisetas rojas en una zona de la grada y a los seguidores del equipo contrario con camisetas azules en una zona diferente de las gradas.
- El nodo particleEmitter nos permite crear un sistema de partículas, suficientemente avanzado y sencillo de utilizar al mismo tiempo. Podéis echarle un vistazo a los settings que estoy utilizando en la captura.
- Básicamente necesitáis conectar cada una de las figuras Lego a los inputs de particles y el geoSelect al input emitter.
- Fijaos que también he añadido un transform para colocar con mayor precisión las partículas resultantes.
- Finalmente necesitamos un scanline render y la cámara del plano para renderizar el sistema de partículas en 2D y componerlo con el resto de capas de nuestro plano.
- Algunos renders variando la cantidad de partículas, es decir, de figuras de Lego populando las gradas.
Los suscriptores de elephant vfx pro podéis desde aquí acceder al contenido exclusivo de este post, un video detallado de más de media hora.