De lo real a lo virtual desde un celular: Fotogrametría básica
Se utilizarán Maya y PhotoScan como herramientas en esta práctica, además de la cámara de 13 megapixeles de un smartphone.
Para los que no conocen el término, la fotogrametría es una técnica de medición por medio de fotografías para crear una reconstrucción virtual. Originalmente esta técnica se utilizaba para hacer mapas con naves no tripuladas que sacaban fotografías de áreas extensas para finalmente, unir todas las fotos en un mapa. Con el tiempo, esta técnica fue adaptada para crear otro tipo de productos, como reconstrucciones tridimensionales de sitios de excavación para fines arqueológicos o para obtener reconstrucciones más fieles a actores en alguna película con VFX, con ayuda de cuartos con un rig lleno de cámaras fotográficas para capturar de manera coordinada y al mismo tiempo, el mismo objeto con la misma iluminación, entre muchas otras aplicaciones.
Los mundos construidos siempre causan una especial fascinación, especialmente por sus historias contadas de manera implícita. Los objetos virtuales no son la excepción. Una de las razones de peso para recurrir a una técnica como la de fotogrametría para reconstruir objetos es el grado de detalle y realismo que es difícil de reproducir de la nada. Es importante que haya particularidades en un objeto virtual como huellas de uso por suciedad o desgaste y estos efectos serán diferentes dependiendo del material. Las estatuas de bronce expuestas a cielo abierto son víctimas de la herrumbre, dándoles un aspecto azulado en las zonas donde escurre agua de lluvia sobre ellas, mientras que en interiores, si durante el paso de los años han sido tocadas de manera periódica por personas que regularmente tienen grasa en las manos, entonces la superficie se verá más clara y brillante.
Así como en diversas áreas de estudio, existe fotografía de paisaje, retrato, científica, astronómica, artística, entre otras. Bajo esta misma lógica, existe la fotografía para fotogrametría. Iremos por partes, al enlistar lo que se requiere para una sesión de esta técnica de reconstrucción virtual.
En fotografía, es necesario conocer a fondo la cámara que se va a utilizar, además del equipo de iluminación, o en su defecto, las condiciones ambientales que existirán. Cada una de sus partes nos ayudará a obtener mayor control sobre todos los aspectos de la toma, independientemente de las condiciones de iluminación. Para efectos prácticos, tomaremos el caso de un ejemplo concreto: Iremos a tomar fotografías de un tronco en un parque.
¿Qué es lo que necesitaremos para esta sesión?
Equipo de cómputo: La máquina usada para esta práctica es ya un poco antigua, pero nos es útil para lo indispensable. Es una HP All-in-One, sin embargo, al procesar las imágenes es de mucha ayuda tener una buena tarjeta de video y suficiente memoria. Una PC dedicada a gaming puede ser ideal en este caso.
Software: Existen varias aplicaciones móviles y de escritorio que nos pueden ayudar con esta técnica, sin embargo, en este caso usaremos Agisoft Photoscan. Es de un precio accesible para licencia de estudiante y los resultados pueden ser de alta calidad. Si no contamos con mayores recursos, podemos descargar la versión demo desde la página oficial del sitio. Algunas funciones estarán bloqueadas hasta adquirir la licencia, y sólo podremos llegar hasta el paso de exportación de geometría en Sketchfab.
¿Qué pasos seguiremos?
1. Sesión fotográfica:
Mientras más fotografías tomemos, más datos tendremos para hacer una mejor representación del elemento.
Tip: Es una buena práctica el tener una tarjeta de balance de blancos y tomar una fotografía al inicio de la sesión con una tarjeta de gris frente al objeto, para que al momento de corregir las tonalidades de color desde Photoshop, nos facilitemos las cosas.
Lo rodearemos en un círculo completo, tomando 10 puntos clave (desde cada punto, tomaremos los tres ángulos que mencionamos anteriormente).
En estas imágenes podemos ver en qué ángulos aproximados se recomienda tomar la foto para tener suficientes datos en la reconstrucción. Si el objeto tiene varias cavidades en distintos ángulos (especialmente las zonas inferiores y más cercanas al suelo), estas tomas son esenciales. Cuando PhotoScan no tiene datos de algún área, en la geometría reconstruida habrá huecos y lo importante es evitar ese error.
2. Procesamiento en PhotoScan de todas las fotografías
Es importante no olvidar que Agisoft cuenta con documentación oficial en la cual nos podemos apoyar para realizar la reconstrucción. Dejaremos el enlace a su manual en PDF para poder revisar a detalle las preferencias que deben tomarse en cuenta previamente: http://www.agisoft.com/pdf/PS_1.1%20-Tutorial%20(BL)%20-%203D-model.pdf
Añadir fotos al programa será bastante simple: Desde el menú Workflow, elegimos la opción Add Photos y cargará la ventana para elegir la secuencia deseada.
3. Mascarear zonas más importantes de la captura
Al seleccionar una foto de la secuencia, veremos que existe la opción de hacer una máscara sobre lo que debe ignorarse para la reconstrucción del modelo. En este ejemplo, estamos seleccionando con un color más oscuro lo que no figura como parte importante en el modelo a reconstruir. No es prioritario en este caso mascarear todas las fotos, pero es de ayuda.
4). Alinear fotos
En esta fase, nuevamente en el menú Workflow, seleccionamos la opción Align Photos veremos una nube de puntos muy dispersa, en donde se habrán marcado los puntos importantes de la captura, para poder definir el área central del modelo. Al seleccionar alguna de las fotos, veremos uno de los cuadros azules iluminado de rojo, representando la posición de esa fotografía.
5. Crear nube densa de puntos
En el menú Workflow, seleccionamos Build Dense Cloud. Dependiendo de la capacidad de nuestro equipo, especialmente en memoria y el modelo de tarjeta de video, podemos seleccionar el grado de calidad.
El proceso tardará unos minutos, pero finalmente veremos el resultado en pantalla, y podremos revisar si hubo algún error con las fotos. De ser así, tendríamos que reiniciar la captura en es sitio.
6. Crear geometría
Es el penúltimo paso antes de exportar el modelo. En Workflow, seleccionaremos Build Mesh e igualmente, como en el caso anterior, veremos que podemos indicar cuál es el grado de complejidad que deseamos lograr para nuestra malla. Para este caso, calidad media es suficiente. Este proceso también tomará unos minutos.
7. Crear textura
En este caso, aunque no tenemos mapa de UVs, este mapa se asignará de manera automática y podemos elegir la resolución, además de si la textura se repartirá en uno o más mapas.
8. Exportar modelo
Desde File, elegimos Export model y se exportará nuestro archivo como .OBJ; en el parámetro de la textura, podremos elegir desde varios tipos de formato de imagen. Como .TIFF, .PNG, .JPG. Si estamos en la versión de prueba del software, la única opción para exportarlo será la de exportar a la plataforma de Sketchfab.
9. Procesar en Maya – Orientación:
Es probable que debamos corregir su punto de origen en los ejes de X, Y y Z, además de su orientación y debamos rotar la geometría para que corresponda con el punto 0 del espacio y para esto es necesario utilizar Maya (3ds Max o Cinema 4D también podrían ser una buena opción). Una vez corregidos estos aspectos, borramos la historia y congelamos transformaciones.
10. Retopología-Versión low o medium poly
Considerando que el lector de este artículo sea un usuario con nivel intermedio en modelado, no explicaremos paso a paso cómo importar la geometría de PhotoScan para hacer una retopología sobre ésta. Lo importante es cubrir el área del tronco lo más cercana a la geometría original con quads, para poder pre calcular los mapas de diffuse y normal sobre ésta.
Después del modelado, procedemos a hacer nuestro UV map, procurando tener el menor número de islas posible.
11. Pre-calcular mapas de textura (Color y Normal)
En la sección de Rendering, en el menú Lighting and Shading, seleccionamos Transfer Maps, donde estableceremos los parámetros básicos: La geometría de origen, la geometría destino, los mapas a calcular (en este caso, diffuse y normal maps únicamente), el formato de estos mapas y su ubicación en directorio, además de su resolución.
Una vez obtenidos nuestros mapas, podemos crear un material nuevo para nuestra geometría low poly y asignarle el mapa de diffuse y normal.
Después de este ejercicio, podemos editar nuestro diffuse para ajustar los colores y acabados de la textura en programas como Substance Painter, Zbrush o Mudbox.
En conclusión, hemos comprobado que es posible obtener resultados favorables para una reconstrucción con fotogrametría si utilizamos un celular de gama media con una cámara con modo manual y suficientes megapíxeles, y aunque no sustituirá el trabajo de fotografía e iluminación profesional con una cámara DSRL, es una buena manera para iniciarnos en esta útil tecnología.
Si este artículo ha sido de su agrado e interés, esperen la segunda parte, en que utilizaremos varios modelos realizados con esta técnica para un nivel demo en Unity.
Agradecemos su atención en este breve documento. Para mayores datos a nivel general sobre prácticas útiles en fotogrametría, adjuntamos una presentación para consulta.
Brenda Esquivel Flores
ha trabajado en Slang studio como junior artist en colaboraciones en videojuegos; Elevator games como 3D artist para el juego para iPad "Celleste"; Ollin VFX como 3D artist para películas como 5 de mayo: La batalla, 2 Guns, HER, El más buscado, entre otras; en el Departamento de Visualización y Realidad Virtual de la UNAM creando modelos y diseño de interfaces para simuladores. Actualmente labora en Pharmagraphix3D&Pharmaconsult.