Hace aproximadamente 3 años empece a experimentar con fotogrametría, desde entonces he estado perfeccionando un sistema de captura fiable y consistente que cumpliera con mis objetivos, probando diferentes técnicas y software, para crear mi primera LIBRERÍA DE MODELOS 3D ESCANEADOS que puedes encontrar en la TIENDA de esta web. Durante este tiempo muchas personas me han preguntado por los detalles del proceso. En esta guía encontraras la información necesaria para experimentar con esta interesante técnica por tu cuenta.
¿EN QUE CONSISTE LA FOTOGRAMETRÍA?
Es una técnica que nos permite crear modelos 3D a partir de multiples fotografías realizadas desde diferentes ángulos usando software especializado que es capaz de interpretar las variaciones de perspectiva y crear una nube de puntos tridimensional.
La fotogrametría tiene muy diversas aplicaciones en VFX, video juegos y 3D en general. Puede usarse, por ejemplo, para escanear un actor real y transformarlo en un doble digital que podrá sustituir al actor real cuando sea necesario.
Un ejemplo de doble digital es “digital Emily” que se presento en SIGGRAPH 2008. Si te interesa descargar la version 2 de Emily incluidos todos los mapas necesarios puedes hacerlo desde su pagina oficial: http://gl.ict.usc.edu/Research/DigitalEmily2/
También se usa con mucha frecuencia en video juegos para escanear “assets” como rocas, plantas, terrenos, superficies, etc. lo que permite a los artistas crear un entorno virtual mucho mas realista. Un ejemplo notable de esta tecnología fue el juego “Star Wars: Battlefront” donde muchos de los ecosistemas del juego estaban construidos casi en exclusiva con modelos escaneados mediante fotogrametría.
Ademas, la fotogrametría se usa desde hace muchos años en topografía y para el estudio geográfico. En la actualidad, el uso de drones ha permitido hacer estas técnicas accesibles a la mayoría.
Otro ejemplo notable del uso de esta tecnología es el trabajo de Sebastian Zapata en Friendly Shade que a llevado el escaneo de superficies al siguiente nivel.
CUANDO USAR FOTOGRAMETRÍA Y CUANDO NO
A pesar de que la fotogrametría es una excelente técnica de escaneado, no es perfecta y es necesario conocer sus limitaciones antes de comenzar a trabajar para evitar problemas durante el proceso.
Como esta tecnología usa fotografías y software de reconocimiento de patrones para reconstruir la geometria, si nuestro objeto o superficie no tiene detalles o tiene patrones demasiado uniformes, el software no va a poder establecer la perspectiva y por lo tanto la reconstrucción de nuestro modelo va a ser complicada. Un ejemplo seria un objeto de un metal pulido o una tela con un patron muy uniforme. Una posible solución a este problema es usar pegatinas sobre nuestro modelo o pintarlo con lacas anti-reflejo o pinturas neutras para poder escanear la superficie, pero al hacerlo, afectamos el escaneo de la textura. Por esta razón es importante planificar antes de realizar cualquier escaneo.
PROS
-Relativamente fácil y económico
-Obtenemos la geometria y la textura
-Muy buena calidad (con el equipo adecuado)
CONTRAS
-No funciona bien en superficies sin detalle variable
-Es dificil escanear metales o cristal
-Requiere mucho tiempo y planificación
OBJETIVOS DE ESTE MÉTODO DE TRABAJO
- Modelos con buen detalle (fotografías grandes y nítidas)
- Rapidez en el proceso de captura (Automatizar procesos)
- Consistencia en los resultados (Iluminación controlada)
- Buen equilibrio entre calidad/rapidez/presupuesto
- Modelos ligeros para su uso en ArchViz principalmente
Antes de comenzar a desarrollar un flujo de trabajo para fotogrametría es importante establecer los objetivos del mismo para garantizar que todas las decisiones que tomemos por el camino están destinadas a satisfacer dichos objetivos.
Si nuestro objetivo es la rapidez del escaneo, usaremos menos fotografías y sacrificaremos detalles. Si nuestra prioridad es la portabilidad, tendremos que pensar como hacer el escaneo con un equipo reducido, etc. Este paso es especialmente importante porque va a condicionar ademas el equipo necesario para el trabajo. Toda la información de esta guía esta destinada a satisfacer estos objetivos en concreto y no otros.
EQUIPO NECESARIO
Teniendo siempre en cuenta los objetivos establecidos anteriormente, necesitamos el siguiente equipo de trabajo:
- CÁMARA DE FOTOS: Para lograr el mejor equilibrio entre tiempo invertido y detalles capturados optamos por una cámara de alta resolución como la Canon 5DS R de 50Mp que, al no tener filtro de paso bajo, nos proporciona mas nitidez. Recordemos que cuanta mas resolución y nitidez mas preciso va a ser el resultado del escaneo, otra alternativa interesante podría ser la Sony A7 r2 de 42Mp. Estas cámara son caras y ofrecen excelentes resultados, pero se puede sutilizar cualquier cámara para hacer fotogrametría.
- LENTE: En este sentido es recomendable contar con una lente lo mas nítida posible, en nuestro caso contamos con varias lentes Prime de alta calidad de 35mm, 50mm y Macro para cuando es necesario escanear objetos muy pequeños. Pero nuevamente, para comenzar, es posible hacerlo con cualquier equipo que tengamos disponible.
- TRIPODE Y ROTULA: El trípode es una pieza esencial del equipamiento que necesitaremos para hacer fotogrametría ya que nos va a permitir estabilidad y consistencia en los resultados. En nuestro caso estamos usando un Manfrotto 055 de fibra de carbono y una rotula Manfrotto 410 Junior Geared.
- DISPARADOR REMOTO: Esencial para evitar tocar la cámara en el momento del disparo y garantizar la máxima nitidez. Recomiendo un disparador inalambrico.
- COLOR CHECKER: Esencial si queremos lograr una textura calibrada con un albedo correcto.
- LUCES DE ESTUDIO: Para lograr unas condiciones que no dependan del clima, es recomendable tener un set de luces de estudio que nos permitan escanear siempre igual en cualquier situación. En nuestro caso contamos con flashes profesionales de estudio. Existen alternativas económicas de luz continua pero dada su baja intensidad pueden afectar a la nitidez de las fotografías al necesitar tiempos de exposición largos y su color cambia frecuentemente lo que puede alterar el albedo.
- HARDWARE: A la hora de hacer fotogrametría uno de los procesos mas lentos es el calculo de la nube de puntos que tiene que hacer el programa de escaneo. Este proceso puede llegar a tardar SEMANAS si no se cuenta con el equipo adecuado. Recomiendo un mínimo de 64Gb de ram (preferiblemente 128) y si el software soporta GPU, tantas como puedas instalar. Dependiendo de los objetivos de calidad que tengas puedes sacrificar hardware.
- OTROS: Tambien es importante contar con una plataforma giratoria que nos permita estandarizar los grados que rotaremos antes de cada disparo (existen opciones automáticas), cinta métrica para tomar medidas y garantizar consistencia si movemos la cámara, gaffer tape, etc.
NOTA: Es posible sustituir los flashes de estudio por un sistema con polarización cruzada como un “ring Flash”, pero en este documento solo cubriremos lo necesario para escanear usando luces de gran tamaño en lugar de polarización cruzada. Ambas técnicas tienen sus pros y contras.
SOFTWARE NECESARIO
Una vez reunido todo el equipo necesario le toca el turno al software. Existen alternativas 100% gratuitas para realizar el proceso de fotogrametría, sin embargo, en nuestro caso hemos decidido invertir en ciertas aplicaciones para optimizar los resultados y trabajar de forma mas cómoda y rápida.
OPCIONES DE PAGO
- 3D Studio MAX (248€/mes)
- Agisoft Photoscan (Desde 164€)
- Substance Designer (132€)
- ZBrush (705€)
OPCIONES GRATUITAS
- Blender (3D Software)
- MeshLab, Visual SFM, PMVS (Reconstrucción)
- xNormal (Creación de texturas)
- Instant Meshes (Retopologia automática)
METODO DE TRABAJO
Podemos reducir el proceso a una serie de etapas desde la captura de las fotografías hasta que obtenemos nuestro modelo 3D con materiales listo para ser usado en nuestros proyectos, durante cada una de las etapas del proceso tendremos presente los objetivos que se plantearon al principio del documento para lograr los resultados deseados.
PASO 1. OBTENER LAS FOTOGRAFÍAS
Sin duda la parte mas importante del proceso es la correcta captura de las fotografías de nuestro objeto, con el objetivo de obtener resultados consistente y buena calidad
ISO: Generalmente la mas baja posible permitida por la cámara (ISO 100 en nuestro caso) para evitar el ruido, ya que el ruido puede confundir al software durante el proceso de escaneo.
F-Number: Generalmente intentaremos usar un diafragma lo mas cerrado posible para aumentar la profundidad de campo y evitar así perdida de nitidez por desenfoque. Valores entre f8 y f22.
Velocidad de obturación: Aunque estemos usando un buen trípode, recomiendo usar velocidades de disparo rápidas para maximizar la nitidez. Dependiendo de la óptica 1/125s por ejemplo.
Iluminación y fondo: Es importante usar fuentes de luz grandes situadas de forma frontal para eliminar sombras indeseadas en nuestro modelo. Si se trata de objetos brillantes esféricos (como frutas) es preferible usar un fondo negro y evitar luces laterales para neutralizar al maximo los especulares. Para objetos menos brillantes como rocas, etc podemos usar un chroma que nos facilitara la tarea de crear las mascaras posteriormente, pero a titulo personal prefiero usar un fondo neutro para evitar contaminación y especulares. Otra alternativa seria usar polarización cruzada con un “ring Flash” o 2 luces situadas a 45º respecto a la cámara.
Cantidad de fotos: normalmente es necesario un 75-80% de superposición de datos entre fotografías para obtener buenos resultados. Yo recomiendo un mínimo de 64 fotografías para cada rotación completa y suele ser necesario hacer 3 o 4 alturas diferentes. Por regla general son necesarias 150-200 fotografías como MÍNIMO por modelo para obtener buenos resultados.
Encuadre: Cada pixel de nuestra fotografía es información util que el programa de fotogrametría puede usar para añadir detalle, de manera que trataremos siempre de llenar el encuadre con nuestro modelo para desperdiciar la mínima cantidad de pixels posibles. Si se trata de objetos muy pequeños, necesitaremos una lente macro para poder acercarnos mas y poder enfocar.
Exposición: Para aprovechar al maximo la información contenida en el negativo digital hay que intentar “derechear” el histograma (exponer para las altas luces) sin sobre-exponer partes importantes del modelo.
Formato de archivo: Este es un aspecto muy importante de la captura de fotografías para fotogrametría. Yo recomiendo usar el formato RAW de nuestra cámara para obtener imágenes de 14-16bpc que nos permitirán posteriormente obtener la información lineal para nuestro albedo. Si buscamos un albedo lo mas correcto posible necesitaremos crear una versión lineal de nuestro archivo RAW usando por ejemplo DCRAW. Si el resultado es demasiado “labado” podemos hacer dos versiones de nuestras fotografías: Una version lineal para proyectar las texturas de albedo al completar el proceso y una version mas contrastada para facilitar la tarea del software de fotogrametria.
A la hora de tomar las fotografías es muy importante ser extremadamente metódico, por ejemplo, podemos marcar nuestra peana giratoria para usar siempre la misma cantidad de grados en cada posición (entre 5º y 10º) y hacer las fotografías siempre en el mismo orden.
PASO 2. PHOTOSCAN
Una vez capturadas nuestras fotografías toca introducirlas en nuestro software de fotogrametría para generar nuestra nube de puntos. En nuestro caso vamos a usar Photoscan, pero podríamos usar las alternativas gratuitas mencionadas anteriormente.
Si el proceso de captura de fotografías se hizo en condiciones de iluminación controlada y de forma metódica, este paso no requiere mayor complicación, si las fotografías se hicieron a mano alzada o con luz natural, es posible que sea necesario identificar las imágenes problemáticas y eliminarlas para que no dañen el calculo.
Una vez cargadas nuestras imágenes en photoscan, el siguiente paso es alinearlas para que el software pueda calcular la posición desde la que fueron tomadas. Al terminar deberíamos tener una nube de puntos de baja resolución y una estimación de la posición de nuestras cámaras como se muestra en la siguiente imagen. Esta fase es ideal para identificar posibles problemas en nuestras fotos. SI vemos que una de nuestras cámaras esta mal alineada podemos eliminarla para evitar problemas y si vemos que nuestra nube de puntos contiene muchos puntos “residuales” podemos eliminarlos para agilizar el proceso posterior.
La siguiente fase del proceso es extremadamente lenta y puede llegar a tardar días de calculo, por lo que se hace especialmente importante asegurarse que todo esta correctamente alineado. Una forma de evitar que el software tenga que calcular zonas innecesarias para optimizar los tiempos es usar mascaras para eliminar de la ecuación el fondo. Esto podemos hacerlo de forma manual, mediante rotoscopia, con diferencia o con Chroma Key en software como After Effect y cargar nuestra mascara con “_MASK” para que photoscan la reconozca automáticamente. Tambien existe la posibilidad de usar la geometria de baja resolución calculada previamente como mascara.
Una vez completado el proceso tendremos una nube de puntos de muy alta densidad con millones de puntos que representan la posición tridimensional de cada uno de los vertices calculados durante el proceso anterior, pero estos puntos aun no definen una geometria tridimensional, son simplemente puntos en el espacio. Para generar nuestra geometria de alta resolución poligonal usaremos la opción de photoscan Workflow > Build Mesh
Vamos por buen camino!. Con esto ya tenemos un modelo 3D de alta resolución que representa de forma muy fiel nuestro objeto original, pero aun nos queda mucho trabajo por delante. Ahora es necesario proyectar las fotografías sobre esta geometria, por suerte este es un proceso muy rápido porque fotoscan ya tiene calculada la posición de cada cámara y simplemente tiene que proyectar las imágenes y generar una textura. En este punto es donde podemos cambiar nuestras imágenes contrastadas por nuestras texturas lineales obtenidas con DCRAW para garantizar un albedo correcto.
Una vez terminado el proceso tendremos nuestro modelo 3D y nuestras texturas lineales aplicadas sobre unas coordenadas de mapeado automáticas creadas por Photoscan. La cosa va tomando forma, pero este modelo aun no esta listo para ser usado en producción, estamos hablando de un modelo con millones de polígonos y coordenadas de mapeado automáticas difíciles de gestionar, ademas, el software de fotogrametria no suele ser capaz de representar correctamente superficies completamente pulidas por lo que se suele hacer necesario un trabajo posterior para corregir el modelo en Zbrush. En la parte 2 de esta guía podrás descubrir como transformar este modelo de alta resolución en un modelo mas manejable y como trasladar la información de altura y el albedo a unas nuevas coordenadas de mapeado creadas manualmente
PASO 3. RETOPOLOGIA
El primer paso para optimizar nuestro modelo para su uso es reducir considerablemente su cantidad de polígonos manteniendo su estructura y silueta. Esta tarea puede hacerse de muchas formas, en este video explico como hacerlo de forma manual en 3D Studio MAX. Una de las opciones mas interesantes para esta parte de nuestro flujo de trabajo es ZBrush que tiene varias herramientas automáticas como ZRemesher que pueden ahorrarnos mucho trabajo y nos ofrecen excelentes resultados para objetos orgánicos. Una alternativa gratuita automática para este proceso es Instant Meshes
PASO 4. CREACIÓN DE COORDENADAS DE MAPEADO UV
Ya estamos un paso mas cerca de nuestro resultado final, pero de momento, nuestro nuevo modelo de baja resolución no cuenta con coordenadas de mapeado ni texturas. Para poder transferir los detalles de nuestro modelo original y el albedo a nuestro modelo de baja resolución, necesitamos unas nuevas coordenadas de mapeado. Este trabajo podemos hacerlo directamente en ZBrush con la herramienta UV Master o en otra aplicación como 3D Studio MAX o UV Layout. En este video se explica de forma detallada el proceso de creacion de coordenadas de mapeado en 3D Studio MAX.
PASO 5. CREACIÓN DE TEXTURAS
Ya tenemos nuestro modelo de alta resolución con textura y nuestro modelo de baja resolución con nuevas coordenadas de mapeado. El siguiente paso en el proceso consiste en usar la información de nuestro modelo de alta resolución para crear nuevos mapas para el modelo optimizado. Esta tarea puede realizarse con multiples aplicaciones como xNormal, el propio ZBrush, etc. En nuestro caso hemos preferido usar Substance Designer por si facilidad de uso, sus excelentes resultados y la posibilidad de automatizar el proceso en multiples modelos a la vez.
Albedo: Es la textura generada por photoscan proyectada sobre las nuevas coordenadas de mapeado.
NormalMap: Contiene la información de altura del modelo de alta resolución en forma de mapa de normales.
Linear Displacement: Información de altura del modelo original en escala de grises.
AO/Curvature: Util para añadir volumen “artificial” a nuestra textura, puede ser interesante en video juegos.
Local Normal: Mapa de normales local que peude ser de utilidad para hacer delighting manual si es necesario.
Glossiness: En nuestro caso este mapa se obtiene de forma manual usando una combinación de albedo, altura y fotografías de referencia.
PASO 6. CREACIÓN DE MATERIALES PBR
Finalmente, con el modelo 3D de baja resolución y las texturas generadas en Substance Designer tenemos todo lo necesario para completar el proceso y crear nuestros materiales PBR. Para garantizar los mejores resultados recomiendo tomar fotografías del modelo real en condiciones de iluminación fáciles de reproducir para usarlas como referencia.
Este es el resultado final renderizado en 3D Studio Max y V-ray:
DESCARGA GRATUITA
Puedes descargar este modelo escaneado en la página de la LIBRERÍA DE FOTOGRAMETRÍA 01
CONCLUSIONES FINALES
- La planificación es clave para obtener buenos resultados.
- Buena iluminación y metodología simplifican el proceso.
- Obtener buenos resultados requiere mucho tiempo y dedicación.
- La fotogrametría no es perfecta, pero es un buen punto de partida.
- La calidad del equipo puede mejorar el resultado.