Trayectoria artística de Andrea Sbabo

Trayectoria artística de Andrea Sbabo. Andrea es un artista autodidacta que hace cinco años empezó a jugar con Houdini en su tiempo libre. Lo hacía por diversión y publicaba los resultados online en Vimeo y YouTube. Dos años más tarde, después de empezar, uno de sus proyectos ganó algo de interés y le ofrecieron un trabajo en la compañía Cine Chromatix, su empresa actual. Desde entonces, ha estado trabajando en algunos proyectos junto a un increíble equipo de artistas.

Andrea Sbabo habla sobre cómo ser un artista de Houdini FX, explica por qué Houdini es su herramienta favorita y comparte un desglose detallado de algunos de los proyectos.

Andrea Sbabo trabaja con Houdini FX

Cuando empezó a dar sus primeros pasos en el mundo 3D y decidió que quería aprender a crear varios tipos de FX, una de las primeras preguntas que se hizo fue dónde aprenderlos. Su objetivo siempre ha sido poder crear tomas complejas como las que podemos ver en nuestras películas favoritas. Hay muchos programas que te permiten crear algo de fuego y agua. Pero ¿Qué pasa si quieres poner este fuego en un barco, mientras es destruido por un dragón y está flotando en el océano?

La posibilidad de hacer tal cosa es usar diferente software y complementos o usar Houdini. El uso de diferentes programas implica muchos más pasos, importar y exportar cachés pesados, encontrar un formato de archivo común, etc. Además, la mayoría de ellos no pueden interactuar entre sí fácilmente. Houdini tiene la solución para todos ellos, además de que tiene un flujo de trabajo completamente procedural. Así que fue la elección obvia.

Al principio, especialmente si eres un principiante, Houdini puede dar miedo debido a la interfaz basada en nodos, porque ves aquí y allá algunas líneas de código o porque es diferente de lo que podrías saber de Autodesk Maya, Blender u otros, y es completamente comprensible. Pero créeme cuando digo que es solo cuestión de aprender a «leerlo». Después de eso, será realmente fácil de usar.

Hay muchos consejos excelentes para los aspirantes a magos, pero su consejo personal para las personas que quieren aprender Houdini es: mientras sigues un tutorial, vigila la hoja de cálculo de geometría y trata de entender lo que está sucediendo y cómo funciona. Aquí es donde realmente puedes ver lo que hace un nodo, qué atributos, objetos o volúmenes está creando/eliminando/modificando. A largo plazo, esto te ayudará mucho, especialmente si aún no entiendes VEX o Python.

Proyecto lluvia y ondulaciones

Este fue un proyecto destinado a explorar un entorno nocturno. Cómo renderizar, sombrear y componer lluvia y elementos secundarios.

El generador de ondulaciones es una herramienta que te permite crear ondulaciones animadas en superficies, pero no solo esto. Casi se está volviendo más como un solucionador de fluidos 2D basado en campos de altura y, debido a eso, también es rápido. Al ser un campo de altura, también es fácil convertirlo a geometría o exportarlo como textura para usarlo directamente en el sombreador o mientras se compone la toma.

Proyecto Lluvia y Ondulaciones
Proyecto Lluvia y Ondulaciones

Dentro de Houdini, ya hay un Ripple Solver que funciona bastante bien y ya está integrado con DOP, el contexto de simulación de Houdini. El problema es que requiere una cuadrícula y geometría con muchas subdivisiones. Puede volverse pesado, muy rápido si no es un primer plano, pero necesita cubrir una superficie grande, especialmente si también deseas capturar detalles más pequeños. Así que es por eso que decidió ir por los Heightfields. Piensa en ellos como imágenes con todas las propiedades de los volúmenes.

imágenes con todas las propiedades de los volúmenes
imágenes con todas las propiedades de los volúmenes

Trabajando las superficies del agua a representar

En la primera entrada necesita una superficie, en la segunda es posible tapar puntos adicionales que se pueden utilizar como fuente para el fluido 2D. Por supuesto, no puedes crear salpicaduras o similares, pero puede ser útil para crear ondas de agua que corren en la playa después de una ola o gotas en una ventana.

simulando olas o gotas
simulando olas o gotas

La idea inicial surgió hace un año, pero ha sido hace poco tiempo que tuvo la oportunidad de hacerlo correctamente. Para hacer operaciones básicas como proyectar el campo de altura en geometría utiliza nodos, el solucionador en sí está escrito en VEX.

La altura y la pendiente del campo de altura son lo que impulsa el fluido y lo hace moverse. En este momento funciona bien con superficies planas o superficies donde el campo de altura se puede proyectar fácilmente. Actualmente trabaja para hacerlo en UVS, para poder trabajar en cualquier geometría que los tenga.

El artista trata de hacer todo el trabajo en Houdini, pero también Nuke juega un papel muy importante en el flujo de trabajo de sus proyectos. Ha descubierto que si quieres lograr el fotorrealismo en tus renders, la composición es un paso fundamental. Su flujo de trabajo puede variar mucho según el tipo de proyecto. A veces inicialmente es necesario hacer algunas pruebas rápidas y otras son mejores para decidir el entorno y la cámara.

Establecer las bases del proyecto

En primer lugar, crea la configuración básica en Houdini, pero una vez que ha establecido los elementos principales, su objetivo es hacer un render rápido de un fotograma. Esto asegura que todo funcione bien en conjunto y también te da una mejor idea de lo que puedes hacer en Nuke en lugar de en 3D.

Un ejemplo podría ser agregar detalles muy pequeños en la composición, o pases adicionales de los habituales para que las cosas se vean mejor. Este paso después ahorra mucho tiempo porque te aseguras de que todo funcione desde el principio. Antes de entrar en detalles que podrían eliminarse poco después o cubrirse por completo porque decides que quieres añadir niebla o similar.

Proyecto de Ataque Imperial Walker

Completó este proyecto usando Houdini 17 y desde entonces muchas cosas han cambiado y mejorado en el programa. Especialmente en el flujo de trabajo de pirotecnia, por lo que no tiene mucho sentido entrar en los detalles específicos de la configuración.

Dado que el Caminante Imperial es básicamente una enorme bestia mecánica, decidió en las primeras etapas que iba a poner algunas restricciones en las articulaciones de las piernas, para crear una plataforma dinámica. Y así lo hizo. Colocó restricciones de cono en cada rodilla y donde las piernas están unidas al cuerpo. Los orientó usando algunos atributos que puedes encontrar en el nodo de restricción de cono (por ejemplo, «eje de giro de meta» o «eje de meta hacia arriba») y les das cierta libertad para moverse como una bisagra.

Se fractura la geometría usando varios planos distorsionados con ruido y booleanas. Después de eso, añade una fractura adicional de las piezas de un cierto tamaño con una fractura de Voronoi. Como restricciones, decidió optar por una mezcla de restricciones duras, pegajosas y blandas. Ha establecido diferentes umbrales de fuerza en función de la parte del cuerpo y con qué probabilidad quería que se rompiera.

Como fuerza de ruptura, utilizó algunas metaballs. Dado que las restricciones de pegamento no se rompen en función de la fuerza, sino en función del atributo «impacto», tuvo que eliminar las restricciones dentro de la metaball dentro de un solucionador SOP.

Trayectoria artística de Andrea Sbabo. Solucionador SOP.
Trayectoria artística de Andrea Sbabo. Solucionador SOP.

La parte donde viene la explosión

La explosión en sí está compuesta por varios elementos, la bola de fuego principal, el humo generado por las piezas y el fuego en la parte interior.

Un truco que utilizaba con bastante frecuencia en el pasado para agregar detalles a las explosiones era renderizar una pasada adicional con ruido. Esto es fácil en Houdini porque puede generar un campo de descanso dual, que realiza un seguimiento del movimiento del volumen. Usando este campo de descanso dual como la posición de entrada de ruido dentro del sombreador, obtendrás un ruido que se mueve de forma natural con el volumen. Y es posible agregarlo como un plano de imagen adicional con el renderizado.

También puedes empaquetar tres ruidos diferentes o tres frecuencias diferentes del mismo tipo de ruido conectando cada uno en los canales RGB. En Nuke puedes separar estos canales, mezclarlos con el pase de temperatura/fuego y usarlos como máscaras para agregar detalles adicionales.

El proyecto Río

Este proyecto lo empezó porque quería probar un flujo de trabajo visto en un tutorial llamado Applied Houdini – Liquids ll de Steven Knipping. La idea básica era a partir de ahí, luego implementó algunos trucos aprendidos por el camino.

Lo primero que necesitas es establecer qué tipo de río quieres hacer, la forma y la profundidad. Esto se debe a que, incluso encontrando los mejores parámetros para un tipo de río, no significa que se apliquen perfectamente a otro. Así que empezó a buscar algunas referencias. Una fotografía realizada por la mañana en un río tranquilo y curvo situado Alaska fue la elegida.

¿Qué tipo de río quieres crear?

Así que empezó a crear el lecho del río. Hay que tener en cuenta que el lecho del río es una de las cosas más importantes a la hora de crear un río. Hay caudales laminares y ríos turbulentos. Una de las principales diferencias entre los dos es, de hecho, la forma del lecho del río, la cantidad de protuberancias que tiene y de qué tipo.

Para crear el lecho del río utilizó campos de altura que son ligeros y rápidos en comparación con el uso de una geometría muy detallada. En el campo de altura estándar, pintó la forma del río como una máscara a mano usando el nodo «pintura de campo de altura» y la movió hacia abajo para crear la forma básica del lecho del río. Con un «ruido de altura» lo desplazas usando la máscara anterior, añadiendo algunos detalles en los bordes pero sin pasar demasiado tiempo en ellos, sabiendo que más tarde tienes que repartir algunas rocas en la parte superior.

Trayectoria artística de Andrea Sbabo

Andrea Sbabo también crea sus propias herramientas

Así que hizo una pequeña herramienta para generar rocas al azar, guardó algunas de ellas en disco, cada una con 2 LOD diferentes, y las dispersó usando un nodo de «dispersión de campo de altura», que es ideal para este tipo de cosas. Estaba cargando los LODs de alta resolución de las rocas en tiempo de renderizado como primitivas de disco empaquetadas, mientras tanto, para la visualización de la ventana gráfica, estaba usando la versión de baja resolución. No dispersó rocas en el fondo porque no buscamos que fuera demasiado turbulento.

El siguiente paso es preparar las geometrías de colisión que usarás en la simulación. La geometría del río es bastante sencilla, solo necesitas convertirla en geometría y extruirla para dar algo de grosor. Luego lo conviertes en un campo de distancia firmado (SDF) de VDB. Para las rocas, cargas la versión de baja resolución y dentro de cada bucle las conviertes en SDFS, encontrándote con 1000 volúmenes VDBS lo que parece mucho, pero los VDBS son realmente ligeros. Luego se fusionan todos, lecho de río y rocas, usando «VDB combine». Para ello conectas solo uno de ellos en la primera entrada, todos los demás en la segunda. Estableces la intercalación en «Aplanar todo B en la primera A» y la operación en «Unión SDF».

Trayectoria artística de Andrea Sbabo. Rocas procedurales
Trayectoria artística de Andrea Sbabo. Rocas procedurales

Es importante renombrar el volumen

Renombras el volumen a «colisión». Esto se debe a que durante la simulación buscas que el cálculo de las colisiones sea lo más rápido posible y la forma más rápida suele ser alimentarlas directamente en la simulación como volumen VDB. Necesitas tener ese nombre, de lo contrario no funciona.

Luego se configura la fuente para la simulación flip creando un emisor en la parte superior del río que fluye. Esto va a obtener agua continua durante la simulación. También creas un estado inicial del río llenando el lecho del río con geometría proxy y luego lo conviertes para la simulación con una fuente de volteo. Para evitar que el agua se salga en las curvas del rio y ahorrar algo de tiempo, ya le das una velocidad inicial usando la tangente de una curva que sigue la forma del río. Esta velocidad es constante en medio del río, pero la reduces a cero cerca de los bordes, donde se colocan las rocas.

Trayectoria artística de Andrea Sbabo, crear remolinos y turbulencias
Trayectoria artística de Andrea Sbabo, crear remolinos y turbulencias

Importante tener marcada la opción Stick on Collision

Para la simulación de volteo, ha utilizado el estado inicial mencionado anteriormente, por lo que la cama ya está llena de agua en el primer marco. Luego utiliza una fuente de fluido para importar la fuente colocada en la parte superior del flujo. Una cosa que vale la pena mencionar es que está habilitado «Stick on Collision». Esto también ayuda mucho a mantener el río dentro de su lecho y evitar desbordamientos.

Lo que hace «Stick on Collision» es combinar la velocidad de la simulación de volteo con la velocidad de la geometría de colisión, que sabemos que es cero. Así que básicamente lo ralentiza. También ha establecido algunos ruidos de rizo personalizados en algunas áreas específicas, por ejemplo, cerca de las rocas en el centro del río. Esto se hace para agregar algunos remolinos interesantes al flujo de agua.

La niebla es una caja enorme alrededor del río, convertida en un volumen VDB. Los volúmenes son lentos de renderizar, especialmente si estás cubriéndolo todo en la toma como, en este caso. Al ser la cámara estática, es mejor ahorrar algo de tiempo de render, renderizando un solo fotograma de la misma.

La nieve también se genera en Houdini al dispersar puntos en la parte superior de las superficies. Por supuesto no donde iba a estar el agua. Luego se agrega algo de ruido al radio de las partículas, las conviertes a VDB para fusionarlas todas, lo alisas un poco y finalmente la conviertes en geometría.

dispersión ligeramente negativa
dispersión ligeramente negativa

Conclusión de Andrea Sbabo

Son varios los retos a los que se enfrenta durante la creación de sus proyectos personales. Algunos de ellos son muy específicos en función del tipo de render, otros son bastante comunes.

Por ejemplo, cuando tienes que hacer una simulación de cuerpos rígidos, el problema más común es que los modelos tienen geometrías abiertas, intersecciones, polígonos no múltiples, polígonos corruptos, etc. Por supuesto, los modelos 3D que están disponibles online no están destinados a ser utilizados para esto, y debes dedicarles tiempo para arreglarlos.

La optimización de todo también es bastante importante, especialmente si el hardware que tienes es el PC de gama media que todo el mundo tiene en casa.

En Houdini, hay diferentes tipos de FX que puedes crear y están casi todos cubiertos. Hya tutoriales excelentes en todos los aspectos y te muestran no solo cómo lograr una determinada toma o FX, sino que también te permiten comprender lo que está sucediendo detrás de escena, para que puedas crear lo que quieras.

Este artículo fue publicado originalmente en 80 Level en inglés por Andrea Sbabo, artista 3D de Houdini FX, en una entrevista realizada por Theodore Nikitin. Puedes ver más trabajos de Andrea en su web.

Trayectoria artística de Andrea Sbabo