Ejercicio de fotogrametría, parte 01
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.
Últimos breakdowns
Me gustaría compartir con vosotros dos breakdowns de ILP con parte del trabajo de mis últimos dos proyectos, y mis primeros en televisión.
Lost in Space breakdown.
Westworld season 2 breakdown
Ricoh Theta en condiciones lumínicas complicadas
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.
Estrategias de texturizado y lookDev para entornos, early access
He decidido ofrecer un "early access" del curso online "Estrategias de texturizado y look-dev para entornos" para que aquellos que lo deseen puedan acceder cuanto antes a los contenidos ya grabados del curso. El curso aún no está terminado pero está en produccion. Las condiciones y beneficios del "easy access" se detallan mas abajo.
¿Qué ofrece el "early access"?
- Descuento de alrededor de un 20% al adquirir el curso "early access". El precio final del curso será solamente de 99€ y con el descuento "early access" puedes adquirirlo por 79€
- Acceso inmediato a todos los videos grabados hasta el momento, alrededor de 7 horas de formación profesional en VFX
- Acceso a los videos a medida que se vayan grabando
- Acceso al curso final una vez publicado
- Acceso al canal exclusivo de Slack para los usuarios del "early access" con presencia del creador y presentador del curso, Xuan Prada. El canal está destinado a responder dudas sobre el curso, y en general, sobre cualquier tema relacionado con los efectos visuales. Asesoramiento sobre trabajos, temas a tratar en futuros videos del curso, y cualquier tipo de apoyo en general
Condiciones
- El "early access" solamente estará disponible para los 20 primeros alumnos que adquieran el curso. Cuando haya 20 alumnos inscritos, el acceso a comprar el curso con la modalidad "early access" desaparecerá
- Una vez realizada la compra, tendrás acceso inmediato a las 7 horas de grabación disponibles. La invitación al canal de Slack se gestiona de forma manual, la recibirás en menos de 12 horas
- El curso no tiene una fecha de publicación establecida. Como sabéis, soy (Xuan Prada) un profesional que trabaja de forma activa en producciones de VFX, ostentando cargos de alta responsabilidad, lo que por una lado, me permite ofreceros formación con unos estándares de calidad muy altos, pero por otro lado, impide que pueda dedicar todo el tiempo que me gustaría a mi actividad como formador y divulgador. Por ello, no prometo ninguna fecha límite para publicar el curso, simplemente prometo trabajar en el mismo cuando mi actividad laboral me lo permita y me comprometo a terminar el curso en un futuro. De echo, esta es la razón para crear un "early access", para que los alumnos interesados puedan ir accediendo al curso a medida que voy grabando nuevos videos, y no tengan que esperar mucho tiempo para poder acceder al curso completo
- El canal privado de Slack estará disponible durante todo el proceso de creación del curso, y 3 meses mas después de la publicación del curso completo. Por razones obvias no estaré online la mayor parte del tiempo, pero me comprometo a pasarme todos los dias de lunes a viernes, al menos una vez al dia para responder las dudas e inquietudes que podáis tener
- Cuando se graben nuevos videos del curso, se notificará a los alumnos a través del canal de Slack y mediante las direcciones de correo electrónico utilizadas para comprar el curso
- El total de horas del curso, es algo que aún no puedo predecir. En mitad del primer ejercicio del curso, ya vamos por las 7 horas, si eso sirve para que os podáis hacer una idea
Actualización: Las 20 plazas ya han sido cubiertas, gracias a todos.
Actualización 2: He abierto de nuevo la inscripción para otras 20 personas.
Actualización 3: Las otras 20 plazas ya han sido cubiertas, gracias a todos.
Clarisse, displacement basics
En este video de 30 minutos explico algunos conceptos básicos de displacement maps en Clarisse. Los suscriptores de elephant vfx pro podéis descargaros el asset utilizado durante la explicación.
Curso online: Estrategias de texturizado y look-dev para entornos (vol.1)
Por fin nuestro nuevo curso online "Estrategias de texturizado y look-dev para entornos (vol.1)" entra en producción. Hemos terminado toda la parte de pre-produccion, que incluye generar documentación, explicaciones, assets, etc. A partir de ahora, "solo" queda grabar el contenido del curso que recibiréis vosotros.
Aquí os dejo un adelanto de información e imágenes sobre el curso, si tenéis alguna pregunta, no dudéis en contactarnos.