Libro de los Muertos: Activos de fotogrametría, árboles, VFX

En esta serie de blogs, repasaremos todos los aspectos de la creación de nuestra demo "Libro de los muertos". Hoy nos centraremos en los activos de fotogrametría, árboles y VFX. Este es el cuarto blog de la serie, echa un vistazo a los dos últimos blogs que van a través de la creación de personajes y arte conceptual de "Book of the Dead".
Hola, mi nombre es Zdravko Pavlov y soy un CG y VFX artista con experiencia en VFX, composición de vídeo, edición, diseño gráfico. Llevo trabajando con el equipo de demos de Unity desde 2014 y he contribuido con varias partículas, dinámicas de cuerpo rígido y simulaciones de tela en las demos "Viking village", "The Blacksmith" y "Adam".
La maqueta de "Book Of The Dead" era un poco diferente. Un territorio completamente nuevo para mí, ya que mi papel en este proyecto consistiría en crear diversos activos de entorno utilizando un enfoque fotogramétrico. La fotografía al aire libre es mi afición, así que estaba más que encantado de encargarme de semejante tarea. ¿Crear árboles? Quiero decir, ¿qué tan difícil puede ser, verdad? En la siguiente entrada del blog intentaré describir todo lo que aprendí durante la fase de preproducción y desarrollo del proyecto.
Afortunadamente, a estas alturas, Internet está lleno de información valiosa sobre ese proceso, así que ahí empezó mi aprendizaje. Lo que la mayoría de los artículos le dirá es que lo que necesita es cualquier DSLR, cámara con objetivo de 50 mm. No tenía ninguno de esos a mi disposición en ese momento, así que decidí hacer mis pruebas iniciales con mi Sony a7II sin espejo de 24 MP con un objetivo zoom de 16 mm-35 mm en su lugar. ¡Y déjame decirte de inmediato que funciona muy bien! El objetivo más ancho te da más distorsión, pero siempre puedes arreglarlo en Lightroom por ejemplo, pero de hecho, ¡es mejor que no lo hagas! El software de fotogrametría lo maneja con elegancia. Los objetivos de focal fija son más rígidos y, en teoría, deberían proporcionar una imagen más nítida. Son realmente geniales si escaneas en un entorno de estudio controlado y lo recomiendo encarecidamente en tales escenarios. Sin embargo, sobre el terreno, ser capaz de encuadrar correctamente el objeto deseado con un objetivo zoom de calidad te dará ventaja.






He probado la mayoría de los programas de fotogrametría más conocidos y algunos han funcionado bastante bien. Elegí RealityCapture por su rendimiento significativamente mejor y su capacidad para procesar una gran cantidad de fotos sin quedarse sin RAM. La cantidad de detalles que consigue reconstruir a partir de las fotos es asombrosa. Me las arreglé para conseguir modelos, a veces hasta 185 millones de triángulos y exportar con éxito la geometría en formato PLY.


Eso, por supuesto, es más que suficiente y también un poco extremo. La mayoría de mis reconstrucciones acabaron aproximadamente entre 50 y 90 millones de triángulos. Al principio usaba la GF980TI, pero más tarde la actualicé a la GF1080, que me proporcionó un ligero aumento del rendimiento.
En algún momento, también actualicé mi cámara a una Sony aRII de 42 MP con un objetivo Planar T* FE 50 mm f/1,4 ZA. Sin embargo, la duplicación de la resolución y el uso del objetivo supernítido superior no me dieron los resultados "WOW" que esperaba. Por un lado, el objetivo de focal fija más largo (y estrecho) obliga a retroceder unos pasos para conseguir la superposición de imágenes necesaria para una reconstrucción satisfactoria. Eso no siempre es posible cuando estás en medio del bosque, con todos los demás árboles, arbustos y demás. También significa que hay que gestionar, almacenar y procesar el doble de gigabytes de datos de imagen. Pero eso no te lleva necesariamente a exploraciones de mayor definición. Tener más imágenes es lo que tiene y tenerlo en 24MP es más manejable. Puede parecer obvio, pero no se me ocurrió hasta que lo probé de primera mano.

Como mencioné, utilicé un formato PLY para exportar la geometría increíblemente densa. Prefiero eso a FBX aunque el exportador PLY de Reality Capture no tenía controles de escala y orientación de ejes así que a diferencia de los FBX, los PLY estaban fuera de escala y rotados. Decidí tratar con eso porque estaba recibiendo algunos errores al hornear texturas utilizando el FBX. Además, la exportación FBX binaria se implementó más tarde.
No muchos programas pueden manejar esa cantidad de polígonos, así que simplemente almacené el archivo y utilicé las funciones de decimación de RC para hacer una versión low poly del mismo modelo. Normalmente, alrededor de 1 millón de triángulos. Y esa se puede abrir en ZBrush, MeshLab o cualquier otro software de modelado, donde se puede retopologizar y desenvolver. Según el modelo, utilicé distintas técnicas para la retopología. A menudo ZRemesher y a veces a mano.



Luego usé xNormal para hornear texturas. xNormal no parece molestarse por los cientos de millones de triángulos y lo maneja con facilidad. He bakeado la textura difusa usando la información de color de los vértices. La densidad de vértices en el highpoly era más que suficiente para producir una textura limpia y nítida sin interpolación entre vértices. Nunca he utilizado las funciones integradas de desenvoltura y texturizado de RC.
Dicho esto, si por alguna razón tu nube densa no es lo suficientemente densa, o faltan algunas zonas (como en la imagen de abajo), proyectar una textura a partir de tus fotos puede aportar detalles adicionales a esas zonas.

Lo que la mayoría de los tutoriales de fotogrametría le enseñarán es que lo mejor es que evite la iluminación directa y dura y las sombras al escanear un objeto. Si se trata de una roca pequeña, que vas a capturar, puedes ponerla a la sombra o incluso en el estudio y utilizar softboxes y platos giratorios. Pero no se puede hacer eso con los árboles, así que me fijé en la previsión y esperé que el tiempo estuviera nublado. Sin embargo, incluso en condiciones de cielo nublado, había algunas sombras y oclusión ambiental. Esto se soluciona con la herramienta DeLighting de Unity. Todo lo que se necesita es un mapa normal, un mapa normal doblado y AO baked. Mantiene intactos los valores difusos al tiempo que elimina las sombras.

Los activos resultantes se importaron a Unity para probar la iluminación dinámica y los sombreadores.



A veces no es posible captar todas las partes de la modelo. O hay un obstáculo y no puedes conseguir todos los ángulos. Otras veces tienes prisa o se te está acabando la batería y se te escapa algo y no te das cuenta hasta que llegas a casa y empiezas a procesar los datos. Cometí muchos errores como ése, pero luego pude salvar parte de mi trabajo utilizando Substance Painter para clonar el sello e intentar arreglar los datos que faltaban.
Durante la mayor parte de la producción del Libro de los Muertos, el equipo de la Demo no contaba con un artista de entornos en plantilla y estábamos buscando uno. Se encargó parte del trabajo a un artista de entornos externo, Tihomir Nyagolov, que había hecho las exploraciones iniciales y había creado el entorno, pero la mayor parte del trabajo recayó en el Director Creativo y Artístico, Veselin Efremov, y en mí. Cada uno de nosotros salía a nuestros bosques cercanos para capturar datos fotogramétricos, y el trabajo pasaba de forma natural a producir los activos finales del juego que se necesitaban. No tengo formación en arte de entornos, y mi experiencia en optimizaciones de juegos, LOD, etc. es nula. En ese momento, Tihomir ya había creado algunos árboles con la ayuda de GrowFx, así que me hice cargo a partir de ahí, aprendiendo sobre la marcha.
GrowFX demostró ser una herramienta realmente potente y versátil para crear todo tipo de vegetación. Interactúa con otros objetos de la escena para que puedas conseguir todo tipo de resultados únicos y de aspecto natural. No está construido exactamente con la creación de activos de juego en mente, pero es lo suficientemente controlable y se puede utilizar para la tarea. Es un plugin de 3DS Max. Soy usuario de 3DS Max desde hace más de 20 años y me siento como en casa. Desafortunadamente GrowFX se basa en algunos de los componentes obsoletos de 3DS Max como los diálogos de edición de curvas, que no son muy convenientes, pero aún así era una buena herramienta para la tarea que tenía entre manos, así que tuve que lidiar con ello.

El bosque del Libro de los Muertos debía ser principalmente de coníferas. Cerca de mi casa hay algunos bosques y parques preciosos, así que salí de "caza" y escaneé algunos de ellos. Luego procedí a coser mis creaciones GrowFX en los modelos escaneados. El tronco del árbol final se compuso de geometría escaneada y textura única para la parte inferior cosida a un tronco generado proceduralmente con textura enlosable para el resto, hasta la parte superior.
Un pequeño parche de la parte inferior fue clon estampado a la parte superior de la textura para que sea azulejos
Una cosa es hacer fotogrametría en rocas y troncos de árboles, pero escanear agujas de pino es algo totalmente nuevo. Aquí es donde Quixel intervino y nos proporcionó sus atlas bellamente escaneados. Colaboraron con el equipo de demos e hicieron numerosos pequeños activos como hierba, arbustos, escombros, etc. creados especialmente para "Book Of The Dead".
Como mencioné al principio, mi experiencia es en producciones CG y he hecho grandes bosques antes, usando Multiscatter o Forest Pack Pro y renderizando en V-ray. En este tipo de tareas, se pueden utilizar los atlas de Quixel Megascans tal cual, pero para un proyecto en tiempo real como Book of the Dead necesitábamos hacer algunas optimizaciones. Incluía la construcción de elementos más grandes (ramas, copas de árboles, etc.) y su disposición en nuevas texturas, la transferencia de los datos escaneados iniciales para los mapas de normales, el desplazamiento, la transmisión, etc.


Los datos normales existentes de Megascans se modificaron ligeramente para dar una falsa impresión de volumen global.


Utilicé diferentes técnicas de edición de normales como Normal Thief y otros scripts personalizados de 3DSMax para mezclar las ramas con el tronco.
Alterar las normales de los vértices para que se mezclen con el tronco.
Con este método pude producir distintos tipos de pinos.


Queríamos que el bosque se sintiera "vivo" y el viento era un elemento crucial para nosotros. Los árboles fueron preparados para nuestra solución de animación del viento basada en sombreadores de vértices por nuestro artista de entornos Julien Heijmans.
Hay muchas formas distintas de crear un campo vectorial y he buscado varias opciones diferentes. Estando familiarizado con el solucionador de fluidos de Chaosgroup, PhoenixFD, decidí ver qué tipo de datos utilizables puedo sacar de él y llevarlo a Unity. Pude exportar la geometría de la escena, traerla a 3DS Max como un FBX y correr un poco de fluido a través de él, que se arremolina alrededor de la vegetación y crea el efecto de viento turbulento. Los árboles más grandes protegían la vegetación más pequeña y el efecto era menos prominente.


He reproducido en bucle la secuencia simulada utilizando los controles de reproducción integrados de PhoenixFD.
A continuación, la información vectorial se leyó a través de un Texmap PhoenixFD, se normalizó y se insertó como textura difusa sobre la isosuperficie creada procedimentalmente.


La secuencia de imágenes renderizadas se importó de nuevo a Unity, donde se ensambló el atlas de texturas final. Yo solía hacer eso en After Effects en el pasado, pero ahora Unity tiene una herramienta muy conveniente Secuenciador de Imágenes, que puede hacer eso casi automáticamente. Es una de las nuevas herramientas VFX que está desarrollando el equipo GFX de Unity en París.

El atlas de texturas creado se colocó en la escena. Hice una caja sencilla para definir los límites de mi simulación y la utilicé como referencia de posición.
Para que quede claro, se trataba de un experimento que nos permitió potenciar los efectos visuales de algunos de los planos del teaser cinematográfico que mostramos. Es un método que puedo recomendar si está utilizando Unity para la producción de películas. Se conecta a la solución principal de animación del viento basada en sombreadores de vértices procedurales, desarrollada para el proyecto por nuestro director técnico Torbjorn Laedre y utilizada en la mayoría de las escenas del teaser, así como en la versión para consola del proyecto que mostramos en la GDC.
En una próxima entrada del blog, Julien y Torbjorn explicarán con más detalle cómo gestionamos el Viento y la solución final que adoptamos.

Empecé a bloquear algunas de las ideas sobre la Colmena desde el principio.


Tras el diseño inicial, empecé a crear varios elementos listos para el juego con el fin de construir los activos de Unity.



Para la gente screwies, hice algunas exploraciones para las variaciones del cuerpo. De nuevo utilicé PhoenixFD de Chaosgroup y realicé una simulación de humo fluido. Después recorté la forma de tornillo y creé una isosuperficie basada en la temperatura del fluido
Algunas exploraciones de formas realizadas con PhoenixFD
Este método nos permitió previsualizar rápidamente diferentes formas y se utilizó como referencia general. El modelo final del personaje screwie fue creado por Plamen (Paco) Tamnev y puedes leerlo todo en su increíblemente detallada entrada del blog.
Para conseguir el goteo de savia en la cara del screwie, volví a utilizar PhoenixFD. Empecé haciendo una pequeña prueba de concepto que mostraba las capacidades y lo que podemos conseguir con un líquido viscoso denso.

Estaba bastante contento con el resultado general y el movimiento fluido, así que procedí a montar el modelo real. El objetivo era evitar que la simulación formara demasiadas piezas y gotas separadas.

Eso me permitió obtener un único fotograma de la secuencia de geometría generada, retopologizarlo, crear UVs y utilizar WRAP3 para proyectarlo sobre el resto de formas de la secuencia. Como resultado, tengo una serie de formas de mezcla que utilizan la misma topología.

También he probado a ejecutar una simulación de savia sobre algunos de los troncos de los árboles.



Al final no las utilizamos en el proyecto final. Sin embargo, me sigue pareciendo una forma agradable de añadir algunos detalles sobre los modelos escaneados.
---
Esté atento a la próxima entrada de la serie. Vamos a profundizar en el arte ambiental creado para Book of the Dead con Julien Heijmans.
Reúnete con nosotros en Unite Berlín el 19 de junio para recorrer tú mismo el entorno del Libro de los Muertos en una consola, y asiste a la presentación de Julien Heijmans sobre Environment art en la demo. Consulte aquí el programa completo.