En esta tercera parte del ejercicio de fotogrametría, vamos a texturizar la roca reproyectando las fotografías originales en el render mesh, con buena topología y buen uv mapping. Todo ello dentro de Photoscan.  Es muy importante, que la posición del asset sea exactamente la misma que tenía cuando salió de Photoscan, si no, las cámaras no se alinearán con el asset y no prodemos proyectar las fotografías de forma adecuada.

Es importante aclarar que el texturizado de assets creados mediante fotogrametría puede realizarse de difrentes formas. En el curso Photogrammetry en VFX, explico de forma detallada diferentes formas. El método que voy a explicar a continuación es probablemente el más sencillo de todos, pero hay que tener en cuenta que en VFX prácticamente nunca vas a utilizar este método. 

En la escena de Photoscan, tenemos que importar el render mesh, éste sustituirá el modelo generado en Photoscan.

El render mesh se alinea perfectamente con las cámaras utilizadas para la creación del mesh original.

Desde el menú workflow, elegimos la opción build texture. Esta herramienta proyectará las fotografías originales en nuestro render mesh.

Muy importante elegir la opción keep uv para que las fotografías se proyecten en el uv mapping que hemos realizado, si no, Photoscan creará un uv mapping automático.

Una vez proyectadas las fotografías, obtenemos un modelo texturizado en el viewport.

Simplemente por motivos de visualización, he importado el render mesh y la textura en Mari. Aquí podemos realizar ajustes si fuese necesario.

El siguiente paso es realizar un delighting de la textura, es decir, eliminar aquella información lumínica ambiental que hayamos podido capturar de forma involuntaria. Hay diferentes forma de realizar delighting, por ejemplo, utilizando HDRIs y dividiendo la iluminación por el albedo, o utilizar las herramientas de Unity, etc. En este caso vamos a utilizar las propis herramientas de Photoscan. Ante, para ayudar al software necesitamos realizar un bake de ambient occlusion. Para ello he utilizado Substance Painter, pero puedes utilizar cualquier otra herramienta.

En Photoscan, en un nuevo proyecto, cargamos el mesh y la textura. Y utilizamos la herramienta remove lighting.

Hay diferentes métodos de cálculo, utiliza el que mejor resultados te de. Cargamos el ambient occlusion y hacemos click en aceptar.

Finalmente esta es la textura exportada tras el delighting.

Y para terminar, unos renders de la roca, incluyendo el displacement y un albedo.

Beauty render.

Albedo render.

Displacement render.

Finalmente para convertir la roca en un digital asset que reutilicemos, tendríamos que eliminarle la zona de cesped y añadir cesped “real” si así lo creyésemos oportuno.

Los usuarios de elephant vfx pro podéis descargar los assets desde vuestra página de descarga.

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.

Hace ya algunos años, publicamos en este blog un completísimo curso online sobre photogrammetry, o fotogrametría (parece ser) en castellano. Desde entonces han aparecido nuevos software, alguna que otra herramienta, y quizás algunos de los procesos han cambiado ligeramente, aunque nada revolucionario, la verdad. Por mi parte, hace tiempo que no trabajo en un proyecto donde requiera de la captura de assets mediante fotogrametría, el útimo show en el que utilicé de forma notoria técnicas de fotogrametría fue Assassin´s Creed.

En aquella ocasión capturé y recreé posteriormente parte del vestuario y props utilizados por Michael Fassbender y Ariane Labed. Tras aquel trabajo, no he realizado más que tareas muy esporádicas y sencillas, en cuanto a fotogrametría se refiere. Aun así, he ido seguiendo nuevas técnicas, herramientas y formas de hacer las cosas, y practicando algunas de ellas cuando el tiempo me lo ha permitido.

En un futuro, pretendo crear un nuevo curso de fotogrametría, expandiendo los conocimientos adquiridos en el primer curso publicado, y actualizando todo aquello que ha cambiado durante estos años. En este post, y en una serie de post que vendrán en un corto periodo de tiempo, pretendo mostraros a aquellos que no tengáis demasiada experiencia en técnicas de fotogrametría, como capturar un par de assets sencillos, utilizando para ello diferentes técnicas y herramientas. Hay que tener en cuenta que no todas las tareas de fotogrametría son iguales, y que no se aplican de la misma forma en todas las industria. Por ello, siempre estaré hablando desde el punto de vista de efectos visuales.

Pasaremos por todas las fases comunes de un proyecto de fotogrametría, incluyendo captura, shooting pattern, color correction, software de fotogrametría, reconstrucción del asset, clean-up, retopología, de-lighting, texturizado, look-dev, y render test.

Este es el asset que pretendemos capturar, una roca incrustada en el suelo. No nos preocuparemos de la hierba, simplemente de la superficie rocosa. Siempre que capturo un asset, hago una fotografía de contexto o staging, simplemente para mostar cual es el asset a capturar y el entorno que le rodea, para tener en cuenta el contexto de cara a una futura reconstrucción.

Los suscriptores de elephant vfx pro, podéis descargaros las fotografías raw para trabajar en este proyecto.

Este tipo de assets son muy sencillos de capturar. Basta con hacer un “turntable” con un par de alturas diferentes. Sin necesidad de utilizar trípode. El único equipo utilizado es una Sony A6000 con un milti zoom y una Macbeth Chart. También conviene utilziar sistemas de medición o escala a la hora de captuar. En este caso no he utilizado ninguno, pero siempre tengo un macbeth chart en frame, con tamaño conocido, así que puedo escalar el asset para obtener una escala real posteriormente.

Los settings de cámara, para este caso en particular, son extremadamente básicos. Fstop 11, ISO 300, aperture priority, es decir, ajuste automático en función de la apertura. White balance fijo, no importa cual (disparamos raw), en este caso nublado, y foco automático. La iluminación es natural, así que no nos preocupamos en ese aspecto. Como decía, este es el “pattern” utilizado para realizar las fotografías.

Mi organización de ficheros, por el momento al menos, es muy sencilla. Diferentes directorios para cada tipo de formato fotográfico.

Quiero utilizar la herramienta color checker passport para calibrar el color de mis fotografías adecuadamente, pero para ello necesito antes convertir las fotografías a DNG. No es necesario convertir toda la secuencia, basta con convertir una sola fotografía en la que el Macbeth chart esté en foco y bien expuesto. Una ve convertida, podemos utilizar la herramienta color checker passport con ella.

Automáticamente los swatches del color chart serán seleccionados, de no ser así puedes ajustarlos a mano. Una vez hecho esto, el software ajustará los valores de los swatches de la fotografía acorde a los valores de medición ideales del fabricantes del color chart. Y con ello crearemos un perfil de cámara que reutilizaremos posteriormente en Adobe Camera Raw para aplicar a todas las fotografías del shoot.

Una vez creado el perfil de cámara, abrimos la fotografía con Adobe Camera Raw. Lo primero que necesitamos hacer es aplicar el perfil creado anteriormente.

Lo que pretendemos con este proceso es linearizar la imagen. Linearizar es un término utilizado para diferentes propósitos en vfx, en este caso nos referimos a dejar la imagen lo más neutra posible, entendiendo por neutra, plana.

El tipo de curva debe ser linear, para que la transformación aplicada sea lo menor posible, y todos los ajustes deberán desactivarse para neutralizar la imagen de la mejor forma posible.

Ahora toca utilizar al herramienta white balance para eliminar la mayor parte de transformación de color aplicada por tu cámara, en este caso, la mia :)
Después, selecciona dos o tres swatches para matchear los valores proporcionados por el fabricante, en este caso 243, 160 y 52 aproximadamente. Una vez terminado, hacemos click en “done” y toda la información será guardada en los meta datos de la imagen.

Abrimos todas las imágenes en Lightrooms y sincronizamos los settings acorde a la imagen DNG que hemos corregido en Adobe Camera Raw. De esta forma todas las imágenes, que han sido realizadas bajo las mismas condiciones lumínicas y con casi idénticos settings de cámara, vivirán en el mismo contexto. Las imágenes resultantes las exportamos como .JPG El software de fotogrametría, aunque entiende imágenes de alto rango dinámico, no lo utiliza para nada, así que siempre vamos a utilizar imágenes de bajo rango dinámico. El resultado será el mismo pero el tiempo de computación será mucho menor.

Como software de fotogrametría en este particular ejemplo, vamos a utilizar Agisoft photoscan. Las licencias personales son realmente asquibles, y los resultados obtenidos en este software son excelentes. El otro software hot del momento es Reality Capture, que es considerablemente más caro, pero muchísimo más rápido, especialmente cuando trabajamos proyectos con varios cientos de fotografías.
La rapides, es lo único que en mi parecer es mejor en Reality Capture que en Photoscan, el resto, prefiero Photoscan. En el futuro utilizaremos Reality Capture para varias tareas.

Nota importante, Reality Capture no está disponible ni para Mac ni para Linux.

Lo primero que conviene realizar en Photoscan es analizar la calidad de las fotografías y descartar aquellas por debajo de 0.2

Este asset es muy sencillo, y no utilizamos ningún setup especial para capturar las imágenes, así que poco más necesitamos hacer en Photoscan. Tenemos que alinear las imágenes en primera instancia. Tenemos unas 90 imágenes, con suficiente overlapping entre ellas, así que la tarea de alineación se con total seguridad que será un éxito. Procursa siempre realizar suficientes fotografías para generar un point cloud suficientemente detallado.

Tras unos minutos las fotografías son alineadas y una cámara es virtual por cada disparo. En esta ocasión todas las cámaras han sido perfectamente alineadas, sin ningún descarte. Sinónimo de que el material fotográfico es bueno.

El siguiente paso es generar el point cloud. Este es el proceso que más tiempo requiere, en mi caso, utilizando un iMac 2013 ha tardado alrededor de 4 horas y media. Conviene utilizar la calidad más baja posible, simplemente para testear que todo funciona correctamente. Con esta calidad tardará apenas uno minutos. Si prevees que todo está ok, utiliza calidad alta y genera el point cloud.

Una vez terminado el proceso, podremos ver un point cloud, incluyendo vertex colors (no teturas) bastante detallado. Eso simplemente es un point cloud, aun tenemos que generar el mesh y las texturas. La densidad del mesh dependerá de la calidad del point cloud generado.

Una vez finalizada la generación del mesh y de las texturas, podemos exportar el proyecto mediante .fbx de esta forma conseguiremos la geometría y las cámaras para su posterior utilización en Maya, Mari, etc. Ten en cuenta de que tanto el mesh como las texturas son simplemente placeholder, vamos a generar un mesh y unas texturas aptas para el trabajo de producción. Lo que estamos exportando desde Photoscan no nos sirve para viajar a traves del pipeline de vfx.

Importamos en Maya el .fbx y obtenemos el mesh, las texturas y las cámaras. Para alinear o escalar el asset es muy importante agrupar todo el contenido dentro de un locator o similar. Necesitamos las transformaciones originales para seguir trabajando el asset en el futuro.

Continuaremos trabajando este asset en el siguiente post.
Los suscriptores de elephant vfx pro, podéis descargaros las fotografías raw para trabajar en este proyecto de fotogrametría.

Llevamos al extremo la Ricoh Theta, tratando de capturar condiciones lumínicas complicadas. Para ello, nos aprovechamos del último firmware de la cámara y la última actualización de la app que controla la cámara de forma remota.

Te cuento mis impresiones, y te muestro los resultados obtenidos. Además, también podrás descargarte el material utilizado en el post para hacer tus propias pruebas.

Este es un post exclusivo para los usuarios de elephant vfx pro. Desde vuestra página de contenidos podéis acceder al artículo.

En alguna ocasión anterior ya hemos hablado sobre el uso de Ricoh Theta para tareas de image acquisition en efectos visuales. En ese video ya comentaba algunos de los puntos fuertes y débiles de utilizar un setup convencional vs un setup basado en Ricoh Theta. Te recomiendo echarle un vistazo.

En esta ocasión, he realizado un ejercicio de image acquisition, donde la fuente lumínica principal es muy potente, el sol, y por lo tanto, es muy importante capturar el mayor rango dinámico posible, para así poder representar de forma efectiva la situación lumínica capturada de forma virtual.

Los setups a comparar son

  • Canon 5D Mark III + 8mm fish eye + panoramic head
  • Ricoh Theta S + Manfrotto mini tripo
  • Los dos anteriores se complementan con lighting checkers y macbeth chart.

Las imágenes capturadas con el setup tradicional. 6 ángulos (aunque podrían haber sido solamente 3). 7 exposiciones por cada ángulo con 2 stops de diferencia. En total 42 imágenes.

Settings de cámara

  • ISO: 100
  • Apperture: f22
  • Mid exposure: 1/100
  • 2EV apart
  • Min exposure: 1/6400
  • Max exposure: 0''6
  • White balance, focus, etc = manual

Todos mis brackets están perfectamente alineados, ya que las fotografias se realizaron con un pano head. De esta forma no es necesario perder ni 2 minutos en Ptgui para hacer el stitching.

0005.png

Las fotografías realizadas con Ricoh Theta, son completamente automáticas, no se pueden controlar de forma manual. Los settings generados son:

  • Min exposure: 1/6400
  • Max exposure: 1/100

El stitching en este caso, lo hago con Merge HDR Pro en Photoshop, ya que Ptgui no hace stitching de fotografías equirectangulares, (si rectilíneas y fish eye). Nunca deberías utilizar Photoshop para trabajo de datos, así que una vez generado el HDRI guarda como .exr y nunca más la abras en Photoshop.

Me llevo los dos panoramas a Nuke, para neutralizarlos en base a mis referencias. También para limpiar artefactos si fuese necesario, aunque en este caso he pasado olímpicamente de ello.

Si bajamos la exposición en viewport y analizamos el punto de mayor valor lumínico en la imagen, es decir el sol, veremos la brutal diferencia entre un panorama y otro.

  • 5D Mark III = 431
  • Ricoh Theta: 3.8

Esta información ya debería de ser una valiosa pista del comportamiento de un panorama u otro cuando creemos nuestros setup IBL.

0013.png

Ya en Maya, creo dos setups de IBL diferentes, uno para cada panorama. Las diferencias son evidentes, especialmente en la densidad de las nombras y la distribución de la luz.

5D Mark III

Ricoh Theta

¿Eres suscriptor de elephant vfx pro? Descárgate el material utilizado en este post y analízadlo tranquilamente en tu casa.

Publicamos de forma gratuita un IBL pack con cinco light-rigs listos para utilizar en tus proyectos VFX. Han sido fotografiados con Ricoh Theta y tienen un rango dinámico de unos 12EV.
Hace un tiempo expliqué como utilizar esta cámara para propósitos de VFX lighting acquisition.

Podéis descargar las imágenes equirectangulares aquí, Los usuarios de elephant vfx pro podéis descargar además, las escenas de Maya/Arnold listas para trabajar. Para ello podéis acceder a vuestra cuenta y descargar el material.
El uso de este material queda restringido a proyectos no comerciales.

Barcelona cafe.

Barcelona cafe render test.

Hobo hotel.

Hobo hotel render test.

Campus i12 green room.

Campus i12 render test.

campus i12 class.

Campus i12 class render test.

Chiswick gardens.

Chiswick gardens render test.