Arreglar el "nadir" en Nuke
En ocasiones puede que necesites arreglar el "nadir" de los panoramas que utilices para 3D lighting y look-development.
Es muy común que según el tipo de objetivo y cabeza panorámica que utilices para fotografiar panoramas, ésta y parte del trípode aparezcan en las fotos del suelo (nadir). Sobre todo si utilizas cabezas panorámicas del tipo de las Nodal Ninja.
Cuando esto me ocurre, suelo utilizar software específicos para trabajar con panoramas para VFX, como PtGui, pero si por cualquier razón no dispones de PtGui, la forma mas fácil de arreglar el "nadir" es en Nuke.
Esta situación es muy común cuando trabajas en un gran estudio de VFX. Las personas encargadas de hacer el "stitching" del panorama, puede que estén muy ocupadas, y te pasen el panorama sin pararse a limpiar pequeños (o grandes) defectos.
Tu, como lighting artist o look-development artist, es muy probable que no tengas instalado PtGui en tu equipo, así que en ese momento Nuke se convertirá en tu mejor amigo para esta tarea.
Este es un ejemplo donde ilustro este problema.
Esta imagen es un "bracket" de uno de los ángulos que forman parte del panorama. Como puedes ver, hice las fotos de forma remota utilizando un ordenador portátil. Lo malo es que éste se ve demasiado en la imagen, cubriendo parte del suelo.
Cuando hice el "stitching" del panorama, estaba demasiado presente en la imagen, convirtiéndose en un problema. Este efecto es mucho más evidente cuando utilizas una cabeza panorámica del tipo Nodal Ninja, ya que el trípode y la propia cabeza se extienden a lo largo de todo el panorama, haciendo muy difícil la tarea de limpiarlo.
La imagen es un "preview" del panorama, así que perdona por la mala calidad de la imagen :)
Esta es la solución que yo utilizo para arreglar este tipo de artefactos o distorsiones utilizando Nuke.
Para el ejemplo he utilizado un panorama de alta resolución que puedes descargar de forma gratuita en akromatic.com
- Antes de nada importa tu panorama equirectangular en Nuke, y visualízalo en el espacio de color que estés trabajando.
- Utiliza un nodo spherical transform para ver el panorama como una bola cromada.
- Para ello, cambia el input type a "Lat Long map" y el output type a "Mirror Ball".
- En esta imagen puedes ver como el panorama se vería en el software 3D. Si necesitas eliminar algo del suelo, añadir algún tipo de información, mejor hacerlo ahora que antes de renderizar en 3D.
- Utiliza otro nodo spherical transform pero en esta ocasión cambia el output type a "Cube" y cambia el parametro "rx" a -90 para que podamos ver la porción del cubo donde esta mapeado el suelo.
- Utiliza un nodo roto paint para eliminar o clonar lo que necesites.
- Necesitas otro nodo spherical transform, cambia el input type a "Cube" y el output type a "Lat Long map".
- Te darás cuenta de que el nodo pasa a tener 5 inputs.
- Estoy utilizando colores constantes para ver exactamente que input corresponde a cada parte del panorama.
- El nadir debería de estar conectado al input -Y
- El output format de este nodo debería ser la resolución final del panorama.
- He reemplazado cada color, por un color negro puro.
- Cada uno de esos colores debería de tener canal alpha.
- Este es el resultado. El nadir que habíamos pintado en plano ahora esta proyectado a lo largo del panorama.
- Chequea el canal alpha.
- Utiliza un nodo merge para combinar el nuevo nadir con el panorama original.
- Ya está, si quieres puedes utilizar otro nodo spherical transform para chequear de nuevo el panorama, comprobar que no haya artefactos o distorsiones en el suelo antes de llevártelo a un software 3D.
Introducción a p-maps
P-maps o position maps (mapas de posición) son un tipo de render pass extremadamente útil. Uno de esos pases que te pueden ahorrar muchísimo tiempo, sobre todo cuanto tienes que hacer pequeños cambios. Esos cambios serían un incordio tener que hacerlos en 3D pero utilizando p-maps y técnicas 2D o 2,5D es mucho mas rápido, sencillo y eficaz.
P-maps son un tipo de mapas que viene genial tanto para compositores, como para matte painters o texture artist. Más adelante hablaré un poco más sobre ellos de forma más extendida.
Dejo aquí abajo algunos de los usos que yo le doy a este tipo de mapas.
Para posicionar cards o cualquier otro tipo de objeto 2,5D o 3D
- Este es el render que estoy utilizando para este ejemplo. Como puedes ver nada del otro mundo, un par de cubos y esferas iluminados por un par de luces directas. Esta imagen ha sido renderizada en Maya y V-Ray, pero por supuesto puedes utilizar p-maps con cualquier combinación de software 3D y motor de render.
- Como passes de render adicionales he renderizado el propio p-map y un passe de normales. Probablemente ya lo sepas, pero existen tres tipos diferentes de p-maps.
Por un lado tenemos "world position maps" (o posición basada en el centro del mundo), "camera position maps" (o posición basada en la relación con respecto a la cámara) y finalmente "object position maps" (o posición basada en el centro del objeto).
Cada uno se utiliza para diferentes propósitos, pero las técnicas que explico en este artículo son extrapolables a todos ellos. En este caso voy a utilizar solo "world position map". - Esta imagen es un .exr de 32 bits con varios aov's embebidos, así que se puede pasar de uno a otro fácilmente.
- Esta es la pinta que tienen el p-map y el pase de normales respectivamente.
- Utilizando un nodo shuffle podemos leer directamente el p-map. Si fuese necesario se puede colocar antes un nodo para un-premultiply el render.
- Con la ayuda de un nodo point to point podemos leer el p-map y ver la escena en el visor 3D.
- Ahora podemos movernos fácilmente por el viewport como si de una escena 3D se tratase. Esto es muy útil ya que nos brinda la posibilidad de posicionar elementos 2,5D o 3D con total precisión. Por ejemplo podemos posicionar "cards" que son realmente útiles para proyectar matte paintings, o efectos 2D pre-renderizados como fuego, humo, etc. Ya no es necesario colocar las cosas a ojo basado en la perspectiva de un render 2D, puedes hacerlo con total precisión.
Para re-iluminar por completo una escena
- Este es el render original de Maya.
- Como hicimos en el ejemplo anterior, shuffle el p-map.
- Utiliza un nodo re-light. Conecta el rgb al color y el shuffle al material. Después en el nodo re-light selecciona las normales y el point position.
Finalmente crea una cámara y un nodo scene. Conecta todo al nodo re-light.
- Crea una luz y conéctala al nodo scene. Juega con los parámetros de la luz para re-iluminar la escena.
- Como ya vimos anteriormente, con la vista 3D te será mucho mas fácil posicionar tu luz/luces.
Para añadir cambios sutiles de iluminación (o no tan sutiles)
- Utiliza un nodo p_matte para leer el p-map y sacar la información al canal alpha.
Ahora juega con los parámetros shape, position y scale del p_matte. Verás la información en el canal alpha.
- Utiliza un nodo grade o color correction con el p_matte conectado a la máscara, de esta forma podrás controlar la intensidad, color, etc de la luz.
- Utiliza un nodo plus para añadir tantas luces como necesites.
- Ya sabes que puedes ayudarte de la vista 3D proporcionada por los p-maps para colocar las luces.
Para proyectar a través de una cámara
- Proyectar matte paintings, texturas, elementos 2D pre-renderizados, etc, nunca ha sido tan fácil. Simplemente importa una cámara 3D desde tu software 3D, o crea una cámara en Nuke y posiciónala utilizando la vista 3D.
- Utiliza un nodo re-project3D para conectar la cámara, la imagen que quieres proyectar (en este ejemplo un grid) y el nodo shuffle con la información de posición conectada al parámetro vector.
- Finalmente utilizo un nodo merge para combinar la proyección del grid con el render original, estando enmascarado por el propio alpha embebido en el .exr
- Por supuesto, toma ventaja de la vista 3D para re-posicionar la cámara si así lo necesitas.
Error en Zbrush: "Insufficient Memory Error"
Seguramente ya has experimentado este error unas cuantas veces cuando tratas de exportar tus mapas de displacement desde Zbrush.
Viene causado porque el proceso de extracción se come toda la memoria RAM de tu estación de trabajo.
Por desgracia es muy común cuando trabajamos con assets muy grandes.
La semana pasada sin ir mas lejos, cuando trabajaba en un asset de unos 40 UDIMs, este error empezó a darme la lata día si y día también.
Si te encuentras en esa situación y no se te ocurre de que forma vas a poder extraer tus mapas de displacement fuera de Zbrush, no te preocupes, este pequeño truco podría ayudarte.
- Ejecuta Zbrush como Administrador, botón derecho del ratón encima del icono de Zbrush y "ejecutar como administrador".
- En Mac, tienes que ejecutarlo como root. Para ello abre un terminal, logeate como root y ejecuta Zbush.
- Una vez ejecutado Zbrush, vete al menu Preferences -> Mem -> Compact Mem e incrementa la cantidad de memoria utilizada por Zbrush.
- Con este pequeño cambio en la mayoría de las ocasiones saldrás del paso y conseguirás exportar tus mapas de desplazamiento.
- Desafortunadamente esto solo me ha funcionado con simple displacement,pero no con vector displacement.
Guía de desplazamiento: De Zbrush a Maya con Vray
Se que en algunas ocasiones, puede resultar un tanto complicado hacer que los desplazamientos esculpidos en Zbrush funcionen correctamente en un software 3D.
Puede que los detalles no se vean exactamente igual, que la calidad del desplazamiento no sea la esperada, y un largo etcétera de problemas.
He grabado un vídeo tutorial donde explico los diferentes tipos de desplazamientos que nos podemos encontrar hoy en día.
Como exportar correctamente los mapas de desplazamiento desde un software de esculpido como Zbrush.
Y finalmente, como trabajar en Maya con Vray 2.0 para que el desplazamiento funcione exactamente igual que en Zbrush.
Además de eso, también explico como re-proyectar detalle en Zbrush desde un modelo esculpido a un modelo de producción, listo para render.
Como realizar de forma muy breve UVs en UV Layout.
Y finalmente, todo el proceso de exportación de mapas de 16 bits, 32 bits, vector displacement, y su utilización en Maya y Vray.
Espero que os sirva y podáis aplicarlo en vuestros pipelines personales.
Cualquier duda o sugerencia, dejad un comentario.
Texturas para brazo humano
Este post es una traducción del original escrito en Septiembre del 2013 en el blog de Xuan Prada.
He hecho un pequeño breakdown de las texturas que normalmente hago cuando trabajo con piel humana.
Digamos que lo mismo que muestro aquí podría extrapolarse para el resto del cuerpo.
Dependiendo de la producción, el pipeline, el motor de render o los shaders, las texturas pueden variar, pero estas son más o menos las genéricas que siempre están.
- Renders utilizando un set-up neutro para look-dev.
- Mapas diffuse.
- Mapas overall.
- Mapas scatter.
Mapas displacement.
- Mapas fine displacement.
- Mapas specular.
Re-proyectar detalle en Zbrush
Este post es una traducción del original escrito en Agosto del 2013 en el blog de Xuan Prada.
- Exporta el nivel de subdivisión más bajo.
- Exporta el nivel de subdivisión más alto.
- Trabaja el UV mapping utilizando el modelo de baja resolución, que obviamente será el modelo que utilices para el render.
- Vuelve a Zbrush y en una escena nueva importa el modelo de alta resolución.
- Importa el modelo de baja resolución.
- Selecciona el modelo de alta resolución, vete a subtool -> insert y selecciona el modelo de baja resolución.
- Una vez insertado, verás que los dos modelos están superpuestos.
- Antes de continuar asegúrate de que solo están visibles los dos modelos que te interesan, nada más.
- Selecciona el subtool con el modelo de baja resolución y subdivídelo tantas veces como necesites.
- Guarda un morph target por si necesitas volver al estado original en el futuro. Seguramente tengas que hacerlo para corregir errores después de proyectar detalle.
- Con el modelo de baja resolución seleccionado, vete a subtool -> project all.
- Los parámetros más importantes son pa blur y distance.
- Normalmente dejo el pa blur a cero y el distance tendrás que ir probando hasta encontrar un valor que te funcione. El valor por defecto es un buen punto de partida.
- Una vez terminado el proceso de proyección, checkea tu modelo. En este caso, al ser un modelo muy simple lo ha hecho a la perfección.
- Ya estás listo para exportar los mapas de desplazamiento.
- Selecciona el modelo de baja resolución y vete al nivel de subdivisión más bajo.
- Aquí dejo los parámetros que estoy utilizando para extraer el desplazamiento.
- Finalmente puedes checkear los mapas extraídos.
Este tutorial esta disponible en modo video tutorial con explicaciones más detalladas, puedes verlo aquí abajo.