Estas son las mejores opciones a la hora de exportar meshes desde Maya a Mari, para poder pintar en las condiciones adecuadas, sin distorsiones ni stretching.
Si, ya se que Mari 3.0 soporta OpenSubdiv, pero ya me he encontrado varias situaciones donde Mari genera artefactos en la geometría, especialmente con meshes complejas o formadas por muchas piezas independiente. Así que por el momento, seguiré utilizando las opciones de subdivisión tradicionales de Maya.

Posted
AuthorXuan Prada

Una de las situaciones más comunes que nos podemos encontrar durante la etapa de look-dev de un asset, es que tengamos mapas de desplazamiento procedentes de diferentes aplicaciones. Generalmente Zbrush/Mudbox y Mari. Esto puede suponer un par de problemas, el primero las diferentes escalas para cada una de las capas, y el segundo, el offset, o también llamado valor de no-desplazamiento.

Lo más inteligente es trabajar siempre con .exr 32 bits, para al menos solventar el segundo problema, ya que el primero siempre estará presente. De todas formas, veamos como solventar esta situación en Clarisse. Ya habíamos visto hace tiempo como hacerlo en Maya/Arnold.

  • Empecemos echando un vistazo a los mapas que vamos a utilizar. En este ejercicio tendremos tres capas de desplazamiento diferentes.
  • La primera capa ha sido realizada en Zbrush. Ha sido exportado como .exr 32 bits cuyo valor de no-desplazamiento es cero.
  • La segunda capa es un high frequency realizado en Mari. Ha sido exportada también como .exr 32 bits cuyo valor de no-desplazamiento es también cero. Es decir, técnicamente este mapa y el de Zbrush son iguales, la única diferencia es la escala.
  • La tercer capa de desplazamiento es un low frequency y también viene de Mari, pero en este caso se trata de un .tif de 16 bits cuyo valor de no-desplazamiento es 0.5
  • El objetivo es combinar todas las capas en Clarisse y utilizar el resultado como desplazamiento.
  • Antes de nada, crea version mipmapped de todos los mapas. Conviértelos a .tx
  • Lo primero que tenemos que hacer es crear un nodo displacement y conectarlo al asset 3D.
  • Vamos a considerar la capa de Zbrush como nuestra capa primaria, así que el displacement deberá tener un front value de 1 y un offset de cero. Esto quiere decir que el valor de no-desplazamiento es cero, como corresponde a los mapas de 32 bits. Y si conectamos nuestro mapa de Zbrush, se verá exactamente igual a como lo veíamos en Zbrush, no necesitamos ajustar nada.
  • Con todos los mapas en el material editor, lo primero que hago es conectar un multiply node delante de cada textura, así puedo controlar fácilmente la intensidad. Por defecto se multiplica por 1, es decir, se queda como está. Aumentando o disminuyendo valores afectaremos la potencia de cada capa de desplazamiento.
  • En el caso del desplazamiento de Zbrush no necesitas tocar su intensidad (a menos que quieras hacerlo). Si deberás reducir la intensidad de los desplazamientos de Mari, ya que están en una escala completamente diferente a Zbrush.
  • Delante del desplazamiento de 16 bits cuyo valor de no-desplazamiento es 0.5 he puesto un nodo add donde le resto -0.5 para así re-mapearlo a valor de no-desplazamiento cero, para que se iguale al resto de capas de desplazamiento.
  • Finalmente sumo todo con nodos add y conecto el resultado al nodo de desplazamiento.
  • Es buena practica testear cada capa por separado hasta encontrar el look que buscamos, para que después la mezcla funcione correctamente.
  • No desplazamiento.
  • Capa de Zbrush.
  • Capa de Mari high frequency.
  • Capa de Mari low frequency.
  • Todas las capas de desplazamiento juntas.

Bueno, quizás no es para tanto, pero al menos a mi me ha ahorrado muchas ¿horas? de trabajo, y sigue haciéndolo.
Como ya sabeis, Nuke es una de las herramientas más comunes utilizadas en todos los estudios de efectos visuales, y por supuesto, el standard de la indsutria en cuanto a composición se refiere. Hoy en dia, prácticamente todos utilizamos Nuke, no solo los compositores. Lighting TD's utilizan Nuke a diario, Look-Dev Artists utilizan Nuke todos los dias, también Texture Painters, Matte Painters, etc. Incluso modeladores, pre-viz artists, etc. Me he dado cuenta de que salvo los compositores, el resto de profesionales no conocemos más que cuatro cosas de Nuke, y esta opción que os presento hoy, no es una de ellas.

¿Nunca te has preguntado por qué el orden de composición en Nuke no parece tener ninguna lógica? ¿Nunca has buscado cómo remediarlo? En este video te explico como hacerlo.

Generalmente utilizo Zbrush, pero Mudbox en ocasiones, puede presentarse como buena alternativa, especialmente por ser gratuito (si eres propietario de Maya) y por estar disponible en Linux, sistema operativo presente en ¿todos? los VFX facilities.
Ya hemos hablado en numerosas ocasiones de como trabajar con UDIMs en diferentes software y para la realización de diferentes tareas (texturing, matte painting, re-projections,etc). Por supuesto, siempre trabajamos con UDIMs, y en algunas ocasiones, es posible que necesites no solo exportar UDIMs si no también, importarlos.

Un ejemplo muy común es crear fine displacement en Mudbox (explicaré como hacerlo en Zbrush otro día). Digamos que pintas un mapa de color con mucha resolución y con 16 bits de profundidad en Mari. No hay razón para no aprovechar esta información como punto de partida en tus displacement maps, y continuar a partir de ahí añadiendo detalle.

Exportar UDIMs desde Zbrush o Mudbox es tan sencillo como apretar un botón, pero importarlos quizás no sea tan evidente.

  • Antes de nada, este es el asset que necesito importar en Mudbox. En Mari tengo varios UDIMs listos para ser exportados.
  • En Mudbox podemos importar el asset como .obj
  • El siguiente paso es crear una capa de "paint" de al menos 16 bits, ya que se trata de un mapa de displacement.
  • Acto seguido voy a exportar este texture channel que acabo de crear, que obviamente esta vació, pero lo que me interesa ver es el naming convention que Mudbox utiliza para nombrar los UDIMs, ya que es distinto a Mari o Zbrush.
  • El siguiente paso, es volver a Mari y exportar las texturas, en caso de que no lo hubieras hecho antes.
  • Necesitamos renombrar las texturas exportadas desde Mari al naming convention de Mudbox. Como hemos exportado previamente las texturas vacías desde Mudbox, ya conocemos el naming convention.
  • Para hacerlo mas rápido, y no cometer errores, vamos a utilizar el script Maprenamer, creado por Jens Kafitz. Hay infinidad de scripts y herramientas que hacen tareas similares, basta con googlear un poco.
  • Descarga el script y colócalo en cualquier directorio. Desde ese directorio escribe "chmod +x maprename" para tener permiso para utilizar el script.
  • Desde el directorio donde has exportado las texturas de Mari escribe el siguiente comando.
  • "perl maprename -s [sourcefolder] [sourceconvention] [targetconvention] -nn [newname] -u -c -p"
  • Para una ayuda más detallada del script visita la pagina del autor.
  • Tras refrescar el listado de archivos, una carpeta se habrá creado llamada Mudbox, que contiene una copia de las texturas con el naming convention necesario para Mudbox.
  • De nuevo en Mudbox, basta con importar una nueva capa y seleccionar el primero de los UDIMs.

Proyectar footage, backplates o cualquier otro tipo de material fotográfico y/o pintado en Nuke, es probablemente una de las tareas mas comunes que podemos realizar en un estudio de efectos visuales. Compositores, texture artists, matte painters o paint artists, son generalmente los encargados de realizar este tipo de tareas. En algunas ocasiones, en lugar de simplemente proyectar los detalles que necesitemos en los renders, es preciso bakear el trabajo realizado en Nuke en las propias texturas de nuestros assets, y así, poder renderizar de nuevo sin necesidad de volver a pasar por Nuke. La mejor forma de realizar este tipo de tareas, es proyectando los detalles directamente en las UVs de los assets.

  • He exportado mi escena de Maya a Nuke. En este sencillo ejemplo tengo la cámara utilizada para el render, y un cubo donde necesito proyectar mi footage.
  • Para importar la geometría utiliza un ReadGeo y para la cámara un nodo Camera.
  • He importado el footage que quiero proyectar, en este caso es un solo frame.
  • Conecta el footage a un nodo Porject 3D.
  • Conecta el input de la camara el nodo Porject 3D.
  • Conecta el img input del nodo ReadGeo al nodo Project 3D.
  • Mira a traves de la camara.
  • Además de estar proyectando el footage en la geometría, también estoy pintando algunos detalles encima de la misma, utilizando un rotopaint.
  • Conecta un nodo UVProject al axis/cam input, y el secondary input al ReadGeo.
  • Deja la opcion Projection como Off.
  • Conecta un ScanlineRender al UVProjector mediante el input obj/scene.
  • El projection mode tiene que estar como UV.
  • Si cambias el visor 3D a 2D verás como el trabajo realizado en Nuke aparece en el espacio UV de tu asset.
  • Utiliza un write node para escribir el trabajo a textura.
  • Ya ya está, listo para ser renderizado en Maya.