Una de las tareas más comunes cuando texturizamos un asset, es replicar los detalles de los mapas de color como displacement. Muchos de estos detalle puden fácilmente realizarse en Mari, especialmente detalles finos, o micro-displacement. En otras ocasiones, cuando necesitemos realizas detalles low-frequency, es posible que necesitemos importar nuestros assets en Zbrush o Mudbox para esculpir. Lo ideal es importar tanto el asset como las texturas de color pintadas en Mari, de esta forma tendremos una muy buena guía para saber que y donde esculpir.

Por supuesto, no queda ninguna persona sobre la faz de la tierra que texturice sin UDIMs y en Photoshop, ¿verdad? Importar UDIMs en Zbrush no es tan sencillo, requiere de un par de pasos extra. En Mudbox no hay ningún problema, basta con importar las texturas en una capa de pintura y automáticamente se importarán todos los UDIMs. Así que veamos como hacerlo en Zbrush.

  • Una vez tus texturas hayan sido exportadas desde Mari, importa tu geometría en Zbrush.
  • En el panel Polygroups haz click en UV Groups.
  • Un polygroup será creado por cada UDIM.
  • Con ctrl+shift puedes seleccionar fácilmente los diferentes polygrous y aislarlos del resto.
  • En el panel Texture, puedes importar el UDIM correspondiente al polygroup aislado.
  • Recuerda que has de invertir en "v" la textura, Zbrush atrabaja así.
  • Si activas la textura en el panel Texture Map verás tu textura en el viewport.
  • De momento todo bien, pero simplemente estás visualizando tu textura, no aplicándola al modelo 3D. Si cargas otra textura, esta sustituirá a la que estás viendo en estos momentos.
  • Necesitamos aplicar la textura, para ello, en el panel Polypaint, con la opción Colorize activada, haz click en Polypaint from texture.
  • Ten en cuenta que la calidad del resultado dependerá de las subdivisiones de tu modelo 3D.
  • Repite el proceso con todos los UDIMs y listo para esculpir. 
Posted
AuthorXuan Prada
Categoriestexturing

Render utilizando Ptex.

¿Qué ocurre si estás trabajando con Ptex pero necesitas hacer algún tipo de detalle de desplazamiento en Zbrush? ¿Cómo se puede renderizar eso?

Como seguramente sepas, en este momento Zbrush no soporta Ptex. Como ya comentaba en el post anterior, no soy un gran fan de Ptex, pero eso va a cambiar en el futuro, probablemente. La mayor ventaja (para mi) de utilizar Ptex, es como comentaba, la posibilidad de no tener que realizar UV mapping. Pero entonces, si Zbrush no soporta Ptex, y no tengo tiempo/ganas de realizar UV mapping, ¿cómo puedo esculpir en Zbrush y exportar mis mapas de desplazamiento para ser renderizados en Ptex?

Render sin displacemet.

  • En la imagen de abajo, tengo un scan 3D el cual he procesado en Meshlab para reducir la cantidad de poligonos a un numero aceptable para poder trabajar en otros software.
  • El siguiente paso, es importar el modelo en Zbrush. 500.000 polígonos son suficientes para poder trabajar de forma fluida y mantener los detalles que me interesan en este particular modelo.
  • Voy a utilizar Zbrush para generar una retopología rápida, automática. Puedes por supuesto utilizar Maya o Modo para generara un modelo consistente de quads, listo para producción. Para el propósito de esta demo, una retopología automática es suficiente.
  • Utilizando la herramienta Zremesher podemos crear una topología más que digna para este propósito en diez segundos.
  • El siguiente paso consiste en exportar tanto el modelo original de alta resolución, como el modelo de baja resolución. Puedes utilizar el formato .obj
  • Vamos a importar los dos en Mudbox para extraer el mapa de desplazamiento utilizando Ptex. Mudbox si soporta Ptex.
  • Una vez importados los dos modelos, mantén los dos visibles.
  • Exporta los displacement maps de forma normal.
  • Lo más importante de las opciones que has de tocar está señalado en la imagen de abajo.
  • Y ya está, todo debería de renderizarse correctamente.

Quizás una de las tareas más comunes hoy en día realizadas por un look-dev artist, ya que los texture artists utilizan tanto Zbrush como Mari para esculpir y pintar los mapas de desplazamiento de prácticamente cualquier asset.

En esta ocasión, lo presento en modo video tutorial. En mi blog en inglés tienes la versión corta escrita.

Cuando subdividimos modelos en Clarisse para renderizar displacement maps, el software subdivide de forma automática la geometría y las UVs. En algunas ocasiones esto puede ser contraproducente, porque necesitemos renderizar las UVs sin subdividir.

Generalmente esto se da por requerimientos específicos del asset en que estamos trabajando o por las necesidades propias de la producción. También depende en sobremanera de como hayamos extraído los mapas de desplazamiento en Zbrush o cualquier otro software de esculpido.

Se no necesitas subdividir las UVs, en primer lugar has de desactivar la opción en Zbrush SmoothUV.
Una vez en Clarisse, cambia la opción UV Interpolation Smooth a Linear.

Por defecto Clarisse subdivide la geometría y las UVs.

Cambiando UV Interpolation a Linear las UVs no se subdividen.

Smooth render.

Linear render.

Posted
AuthorXuan Prada

Esta es una guía rápida para configurar displacements extraídos desde Zbrush en Clarisse.
Normalmente, lo más importante es extraer de forma adecuada el displacement en Zbrush, si no sabes como hacerlo de forma correcta, échale un ojo a este post.

Una vez extraídos los mapas de desplazamiento, sigue este pequeño tutorial.

  • Para mantener todo bien organizado, voy a meter el material relacionado con este mini-tutorial en un nuevo context llamado "hand".
  • He importado la geometría base y creado un nuevo standard shader con un diffuse gris.
  • Estoy utilizando un set-up IBL básico.
  • Ahora he creado un map file y un displacement node. He renombrado todo para mantener el orden.
  • Selecciona la texture de desplazamiento para la mano y selecciona la opción raw/linear, ya que estamos utilizando mapas de 32 bits .exr
  • En el displacement node configura el bounding box. Empieza con un valor de 1 y a ver que tal responde. Ajústalo en consonancia.
  • Añade el displacement map al front value. Deja el valor como 1m (esta unidad es una unidad global, no es realmente 1 metro).
  • Deja el offset a 0 ya que estamos utilizando 32 bits.
  • Finalmente asocia el displacement node a la geometría.
  • Y ya está. Lanza un render y todo debería funcionar bien.

Render con desplazamiento.

  • Si aún utilizas 16 bits displacement maps, tendrás que utilizar un valor de 0.5 en el offset y jugar con el valor del desplazamiento hasta que consigas el resultado esperado.

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.