Una vez hemos generado el mesh, como vimos en el post anterior, llega el momento del clean up. En el caso de tratar con assetsmuy densos, generados a través de lidar, antes de realizar cualquier operación seguramente tengamos que decimarlos utilizando el software específico del escaner. No hay ningún software DCC capaz de gestionar semejante cantidad de información. En nuestro caso, es un modelo sencillo, así que podemos dirctamente importarlo en Zbrush para realizar labores de clean up.

Lo que siempre hago es descartar las partes del mesh que no me interesan, en este caso en particular me interesa nada más la roca. Voy a dejar un margen de suelo, pero no creo que lo utilice en el futuro. En Zbrush podemos fácilmente enmascarar aquellas partes a desechar, tanto mediante selección como pintando. Una vez elimandas aquellas partes que no nos interesan, suelo darle un repaso general al mesh para eliminar ruido y spikes, utilizando para ello el pincel flaten y soft. En caso de ver algún error también podemos solucionarlo, o también por ejemplo podemos refinar algunas zonas que no hayan sido capturadas con suficiente detalle. En este caso, todo ha sido capturado perfectamente.

Por mantenr cierto orden, he creado varios directorios llamados respectivamente, zbrush_in, zbrush_out y zbrush.

Clean up.

Una vez estamos satisfechos con la apariencia del mesh, tenemos dos opciones. Cear una geometría apta para producción, es decir, con una topología ordenada y eficiente. O por el contrario, crear una versión decimada donde conservamos todo el detalle original del scan pero cuya topología es desordenada y sucia. La elección depende de lo que tu necesites. En el caso de vfx, lo normal es generar una versión con topología correcta.

Para ello, lo ideal es generar una versión decimada para llevarnos a Maya y hacer la retopología encima. No queremos lidiar con la versión de alta resolución. En mi caso conreto, como no estoy realizando este asset de verdad, es sólo una demo, y además, porque tengo más cosas que hacer y soy un vago, voy a realizar una retopología automática dentro de Zbrush. No es la mejor topología del mundo, pero es mejor que una versión decimada y simula el paso de generar una retopología en base a un scan.

Decimation, no apto par vfx pipeline.

Automatic retopo en Zbrush.

El siguiente paso es realizar un uv mapping decente. Si no te desenvuelves bien con el uv mapping, échale un ojo a este curso. Buenas uvs son indispensables en un pipeline de producción de vfx, muy importantes. Para este asset, que es relativamente pequeño, voy a utilizar un sólo UDIM. Generalmente nunca utilizo un sólo UDIM, pero trabajar con UDIMs requiere ciertos pasos extras cuando trabajamos con fotogrametría, así que ya hablaremos de eso en otra ocasión.

UV mapping.

Una vez tenemos el asset con su buena topología y su uv mapping, deberíamos de crear una versión para fx, en el caso de que fuera necesario. En este caso no lo es. Este es el mesh que se va a utilizar para el render, tal cual está. Lo siguiente que necesitamos es reproyectar los detalles que teníamos en el scan original y extraer un displacement map, para que a la hora del render, esta simple geometría tenga es aspecto que deseamos.

En Zbrush, subdividimos un par de veces el asset, y reproyectamos e scan. Extraemos los mapas en EXR 32 bit con el midpoint a cero. De esta forma no tendremos que preocuparnos por absolutamente nada, con aplicar el displacement en Maya todo se verá perfectamente.

Zbrush reprojeciton.

Finalmente, en Maya realizamos un render test con el displacement aplicado. Todo el detalle debería de estar ahí, pero si quieres estar seguro, puedes realizar un render del scan original y compararlo con el estado actual del asset.

Render test.

Los usuarios de elephant vfx pro pueden descargarse el material utilizado en este post.

Seguramente Meshlab sea la única herramienta disponible para trabajar con cantidades muy altas de polígonos, al menos, sin contar software propietario de soluciones Lidar. Además, Meshlab es gratuito, open source y disponible para todo tipo de arquitecturas.

Estoy trabajando con terrenos complejos, de mas de 50 millones de polígonos. Maya simplemente no puede gestionar de forma eficiente semejante cantidad de polígonos. Lo ideal seria abrirlo en Zbrush y reducir la cantidad de polígonos mediante decimation, pero la gestión de memoria de Zbrush no es demasiado buena, y simplemente no te dejara abrir el terreno.

La alternativa es abrirlo en Meshlab y utilizando sus (rapidísimas) herramientas de reducción de polígonos, exportar versiones más ligeras para utilizar en Maya. Llevo mucho tiempo utilizando Meshlab para lidiar con Lidar, photogrammetry y otro tipo de geometrías muy pesadas, y sin duda creo que es la solución más adecuada para la mayor parte de trabajos que he tenido que realizar. (en Linux tienes algunos bugs un tanto fastidiosos).

  • Veamos como reducir los poligonos de este terreno de 16 millones de polys. Ya he descartado Zbrush ya que da error de memoria y no permite abrirlo.
  • En Meshlab existen diferentes soluciones para reducir la densidad de una malla, a mi particularmente me gusta Quadric Edge Collapse Decimation, sobretodo por su rapidez.
  • Existen diferentes estrategias para controlar el tipo de reduccion, me gusta utilizar el percentage reduction. En este caso estoy reduciendo a la mitad, 0.5
  • El resultado como cabe de esperar, es de 8 millones de polys.
  • He vuelto a correr la herramienta para obtener un terreno de 4 millones de polys y llevarmelo a Maya.
Posted
AuthorXuan Prada

Este es un post que no tenía pensado escribir, ni grabar, entre otras cosas, porque este es un tema que he cubierto de una forma u otra en anteriores posts, y sobretodo, porque lo he explicado de forma exhaustiva en algunos de nuestros cursos online. Especialmente, en el curso de Photogrammetry en VFX.

Aun así, he decidido grabar el proceso completo de generar un asset de producción partiendo de un scan o un modelo de photogrammetry. Me encontraba preparando este scan (lidar) de un casco del siglo 17 que utilizaré para uno de los ejercicios del workshop de materiales del curso online "Arnold Fastrack" que estoy preparando, así que ya que tenia que hacerlo, he grabado un vídeo para los suscriptores de elephant vfx pro. Ya que es navidad, he decidido colgar aquí el vídeo para todos los lectores de elephant vfx y que veáis como son los vídeos que normalmente están disponibles para los suscriptores pro, a ver si os animáis para el nuevo año.

Posted
AuthorXuan Prada

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.

Si trabajas a menudo con 3D scans, Lidars, photogrammetry u otros tipos de geometrías complejas, seguramente utilizas Meshlab. Como sabes, es un software genial, que permite gestionar geometría de mas de 75 millones de polígonos. Los usuarios de Photoscan estamos muy acostumbrados a utilizar la herramienta de alienado al suelo. En Meshlab no he podido encontrar esta herramienta, por favor, si la encuentras avísame.

Como alternativa, he encontrado una simple operación que nos permite alinear nuestros Lidar al suelo, para ello necesitamos hacer lo siguiente.

  • Importa la geometría Lidar, photogrammetry o lo que necesites. También importa un plano exportado desde Maya colocado donde te interese. Este va a ser tu suelo.
  • Este ejemplo es muy sencillo, ojalá me tocase trabajar con lidars tan sencillos de vez en cuando :) La meta es alinear la zapatilla de deporte con el suelo.
  • Haz click en la herramienta de align.
  • En la ventana align tool, selecciona el objeto que va a hacer de suelo, y haz click en glue mesh here.
  • Una vez seleccionado fíjate que aparece un asterisco delante del nombre del objeto.
  • Selecciona el lidar, y haz click en point based glueing.
  • En la ventana que aparece puedes ver los dos objetos. Puedes moverte como si se tratase de un viewport.
  • Selecciona un punto de la base de la zapatilla, es decir, de la suela. Para seleccionar el punto tienes que hacer doble click encima de él. Después selecciona un punto del objeto que hace de suelo.
  • Repite este proceso varias veces. Necesitas al menos 4 puntos.
  • Y ya deberías de poder alinear tu Lidar al objeto suelo. Obviamente cuanto más limpio esté el Lidar mejor.