partículas en Houdini

Introducción a la creación de partículas en Houdini

En el mundo de los efectos visuales, las partículas son los fundamentos y base que componen muchos de los grandes planos que hemos visto en la gran pantalla o que hoy encontramos en los videojuegos.

En esta ocasión vamos a hacer un breve viaje a las claves de una simulación de partículas y cuáles son aquellos elementos esenciales que debemos conocer y dominar. ¡Vamos a descubrirlo!

¿Qué son las partículas?

Si pensamos en partículas, el primer efecto que se nos puede venir a la cabeza es la lluvia o copos de nieve. Aún así, tenemos muchas más referencias en nuestro entorno como los fuegos artificiales o las chispas que salen de un fuego.

Lo mismo ocurre con la arena de la playa o el desierto cuando se levanta por el propio viento; o incluso el polvo en suspensión que podemos ver a través de la ventana cuando entra la luz del sol.

Podéis pensar en un sistema de partículas como la herramienta de efectos digitales más antiguas y que siguen en pleno uso, porque son muy rápidas de simular y ligeras de renderizar. De este modo, podemos hacer muchas iteraciones* hasta alcanzar el resultado deseado, cosa que le gusta mucho a la dirección artística del proyecto.

Un ejemplo de la potencia visual que tiene un efecto de partículas es el característico portal de Doctor Strange.

En la creación de partículas con Houdini, conocer en profundidad cómo funcionan estas nos brinda una base muy sólida para poder crear otros efectos como son explosiones, simulaciones de agua o destrucciones. Las técnicas que se utilizan en estos sistemas nos dan control artístico y de nuestros efectos, ya sea para cine, publicidad o videojuegos.

*iteraciones: cuando se habla de iteraciones nos referimos a versiones. Normalmente se hacen un gran número de versiones de un efecto con diversidad de cambios para que den comportamiento diferentes, esto lo llamamos iteración.

¿Qué es Houdini y por qué es ideal para la creación de partículas?

Empezamos por el principio, ¿qué es Houdini? Houdini es un programa de animación 3D o DCC 3D, como podría ser Maya, Blender, 3dsMax, etc.

Desarrollado por la empresa SideFX que se lanza al mercado en 1996, pero este comienza su desarrollo en 1987 desde la compra del paquete de herramientas de generación procedimental Prisms. Justo esto es lo que diferencia a Houdini de cualquier otro programa 3D: su código y base surge de la generación procedural, es decir, en vez de crear de forma manual o tradicional cualquier elemento 3D, se combina el trabajo manual de artistas con la potencia de algoritmos y procesamiento generado por ordenador para obtener resultados más rápidos y más impresionantes.

En 1992, Houdini fue el primero en incluir un sistema de partículas dentro de su programa. Si hablamos de la parte procedural dentro de un sistema de partículas como comentamos anteriormente, estaríamos hablando del contexto dynamics networks.

En este contexto de trabajo* se crean las simulaciones, que básicamente consisten en crear un objeto de simulación y aplicar uno o más solvers, además de fuerzas para obtener un comportamiento específico.

En Houdini tenemos diferentes tipos de objets y solvers dependiendo el tipo de simulación que necesitemos, como por ejemplo: volúmenes, líquidos, rigid bodies (cuerpos rígidos, sin deformaciones), vellum, pop (particle-oriented processing), etc.

particulas houdini popsolver basico

*contexto de trabajo: Houdini se compone de diferentes contextos. Cada contexto esta específicamente desarrollado para trabajar algún proceso particular como es SOP – surface operator o DOP dynamic operator, entre muchos más.

Características clave de Houdini para efectos visuales

Hablamos de solver pero ¿a qué se refiere este concepto?

Un solver es la base de cualquier simulación, porque lo que realiza es un cálculo y actualización de los datos en cada paso de tiempo. Espera, ¿qué? Pensad en esto: los artistas de 3D siempre trabajamos sobre un tiempo o timeline. Es decir, trabajamos en unos frames determinados que corresponden al plano o secuencia asignadas. Normalmente si trabajamos en cine se habla de 24 fps o frame por segundo. Esto quiere decir que cuando damos al play y reproducimos los objetos se moverán a 24 fps. – cada frame es un paso de tiempo –.

El solver lo que hace es almacenar y actualizar los datos en cada frame, por eso una simulación puede evolucionar o una partícula puede empezar en un punto A y terminar en un punto B. Porque según las fuerzas que nosotros añadimos a nuestra simulación, la partícula irá realizando diferentes movimientos.

En definitiva, es como un contenedor; en él calculamos las simulaciones y según lo que vayamos añadiendo a este, pues se irá actualizando dicha información.

Diferencias entre Houdini y otros softwares de simulación

Como veis la cosa se pone algo más interesante. Empezamos a hablar de simulaciones, solvers, frames, datos…

La palabra datos es muy importante en Houdini y esta es la que caracteriza y lo hace clave con respecto a otros software. Houdini nos permite trabajar directamente con datos; podemos verlos, manipularlos y transformarlos a nuestra necesidad.

Estos datos en muchas ocasiones también se nombran atributos. Los atributos pueden ser dados por el programa o ser customizados por nosotros.

Por ejemplo, el vector de posición de cada partícula en el espacio 3D es un dato que nos da el programa mientras que si genero un nuevo atributo llamado “pepito” este es un atributo custom donde nosotros definimos qué información queremos que guarde.

Pero no nos pongamos demasiados técnicos. Pensad que la potencia que radica dentro de Houdini es su componente procedural.

Artista: Stillman Visual

Trabaja de una forma no destructiva y lineal, teniendo la posibilidad de actualizar cualquier información y dato de un setup*. Imaginad lo potente que puede llegar a ser esto en una producción por la gran flexibilidad de trabajo que ofrece.

En producción hay una gran cantidad de variaciones y feedback, por lo que trabajar en un sistema procedural permite hacer ese tiempo de iteración mucho más rápido que antes.

Este es el componente más representativo y diferenciador con respecto a antiguos plugins de efectos como fumefx, phoenix, realflow, krakatoa, thinking particles, entre otros.

Lo mismo ocurre con programas como Maya, que con sus últimas actualizaciones está desarrollando un entorno de trabajo nodal pensado un poco de forma procedural como es Bifrost; o Blender que utiliza geometry nodes para obtener comportamientos más procedimentales sobre geometría, como en Houdini hablábamos de sop operators.

Al ser procedural desde su desarrollo inicial, hace que todos los operadores convivan bajo los mismos contextos dentro del programa. Esto permite mezclar y encontrar las soluciones más creativas para resolver los grandes retos que hoy encontramos tanto en cine como en videojuegos.

*setup es a lo que comúnmente llamamos a un conjunto de nodos que hacen un efectos o proceso específico. Por ejemplo, el setup de explosión. Normalmente un efecto se componen múltiples setups de efectos.

Configuración inicial del proyecto

Sidefx nos brinda una licencia de Houdini apprendice que no tiene caducidad, solo tendremos una limitación en la resolución de nuestros render que no pueden sobrepasar el 720p (1080×720), o otro tipo de limitaciones como exportar a otros programas con formatos alembic.

Pero justo cuando abrimos Houdini nos encontramos con la interfaz. Como todos los programas, al principio puede ser abrumador, muchos botones, ventanas, y mil cosas que aprender. Así que vamos paso a paso.

interfaz houdini

Disclamer: En Houdini se pueden trabajar de muchas formas diferentes. Con la aparición rompedora del usd en la industria se han abierto nuevas formas de trabajo, pero como os mencionaba, la base sigue siendo la base. Por lo que estamos en una época donde conviven múltiples flujos de trabajo diferentes, según el sector, empresa, proyectos, etc.

Como profesionales debemos desarrollar habilidades para saber adaptarnos a las nuevas técnicas y a la forma de trabajar de cada estudio.

Cómo funcionan las partículas en Houdini

Entonces ¿qué son las partículas? Podemos definirlas como puntos en el espacio 3D a los cuales se les dan unos atributos y se les aplican unas fuerzas.

Por ejemplo, podemos añadir una gravedad y todas las partículas que emitimos se verán afectadas por la fuerza de esa gravedad. Pero también podemos crear un viento o lo que llamamos un ruido, que es nada más que un patrón de ruido con el que podemos jugar para obtener un comportamiento más orgánico y que haya partes de nuestra simulación que se comporten diferentes a otra zona.

Workflow básico para crear partículas en Houdini

Veamos el workflow básico para crear una simulación de partículas.

flujo de particulas houdini

Siempre comenzamos creando lo que llamamos emisor. Este puede ser de dos tipos: podemos emitir desde una geometría o desde puntos.

Una vez tenemos desde donde queremos emitir, es decir, desde un grid, o una esfera o de un personaje, debemos crear aquellos atributos que nos ayudarán a controlar el estado inicial de nuestras partículas.

puntos de emisión en houdini

Por ejemplo, si queremos que nuestras partículas caigan o vayan hacia arriba o hacia un lado, o como en Doctor Strange, tengan forma de círculo mágico. Para eso creamos atributos como la velocidad de dirección, color, escala,…

vector de velocidad en houdini

Una vez tenemos listo nuestro emisor vamos con el solver. Aquí es donde se crea la magia de la simulación. Lo primero que tenemos que decidir es cuando queremos emitir (es decir, si en todos los frames).

Por ejemplo, una lluvia que no para, o algunos frames específicos como unas chispas que chisporrotean de un fuego. ¿Pero qué necesita un solver de dinámicas para que funcione?

Lo primordial es crear fuerzas, como comentábamos anteriormente. Necesitamos crear esas fuerzas que empujen nuestras partículas. Podríamos hablar de aceleración, resistencia, ruidos o empuje, pero es algo más técnico que debemos aprender poco a poco.

popsolver interior houdini

Así es como se ve el interior del solver de partículas. Ahora puede parecer caótico o con muchos nodos que no conocemos, pero cada uno de estos grupos de nodo realiza un cálculo que necesitamos en nuestra simulación. Por ejemplo, unos actualizan la velocidad de nuestras partículas, mientras que otros calculan las colisiones. Al final con el estudio, todas estas incógnitas terminan desapareciendo y podemos sentir que conocemos el programa en profundidad.

Renderizado y optimización de la simulación

Por tanto, una vez que hemos realizado nuestra simulación y se han calculado todos nuestros frame, pasamos al proceso de optimización donde limpiamos todos aquellos atributos que no necesitamos.

Pensad que el solver calcula una gran cantidad de datos en cada frame que pueden interesarnos o no, por ejemplo, qué edad tiene la partícula o si ha chocado en algún momento con algún objeto o colisión, entre cientos de datos.

atributos de particulas houdini

Por tanto, para no guardar toda esta información en nuestro disco duro, debemos limpiar y quedarnos con los que nos interesan para el próximo proceso.

Así que una vez que limpiamos nuestra simulación, la guardamos en nuestro disco (es el proceso de cache). El cache es, al fin y al cabo, guardar toda la información que ha calculado nuestro solver. Así ya no tendremos que volver a calcular este proceso.

Además podríamos mandarlo a otro departamento para que siguiera trabajando o incorporarlo al plano final, por lo que ahora toca post-procesar y darle el acabado final a nuestras partículas.

Podríamos darle un acabado en forma de líneas donde en realidad lo que hacemos es falsear el motion blur que veríamos a través de una cámara real, si quisiéramos grabar partículas en movimiento, al moverse tan rápidas ante la cámara, estas generan sensación de líneas. O por otro lado, podemos trabajar las partículas como puntos, que es lo que son.

Cada acabado visual tiene su proceso y de nuevo, sus atributos. Por ejemplo, el grosor de esas líneas o el tamaño de los puntos además del color o incluso según el efecto que queramos hacer podemos instancias geometrías en capa partícula. Y llegado a este punto podríamos decir que tenemos nuestro efecto terminado o como en muchas producciones lo podemos considerar un asset.

Ahora toca aplicar materiales, crear nuestras luces y renderizar. En el entorno de render podríamos tomar dos caminos: el camino más tradicional o el nuevo flujo.

A continuación vamos a ver el nuevo flujo de trabajo que Houdini incorporó dentro del contexto “stage” o también lo podréis ver como solaris.

De nuevo hablamos de otro contexto “stage” aquí es donde trabajamos el flujo de trabajo de usd. Para nosotros lo importante es que debemos traer nuestro efecto al contexto stage.

En esta fase crearemos nuestros materiales que trabajan con materialX, con este podemos hacer que nuestras partículas reflejen, emitan luz o jugar con cualquier propiedad de los materiales. Al igual que si estuviéramos trabajando con un personaje, debemos poner nuestras luces del plano como si estuviéramos en un set de rodaje, creamos nuestras luces con sus propiedades y ya estamos listos para renderizar.

Para render podemos usar múltiples tipos de nodos de render. Podríamos usar Arnold, Renderman, Octane, Redshift, entre otros. Pero Houdini trae un motor exclusivo llamado Karma que tiene dos modos: podemos renderizar con la tecnologia cpu o con la xpu. Ambos tienen acabados visuales algo distintos pero sobre todo es que xpu aprovecha la potencia de nuestra gráfica y la cpu para dar tiempos de renderizado más bajos.

Y con nuestro render terminado, ya estaríamos listos para pasar al siguiente departamento o proceso que sería la composición de nuestro plano.

Aprende Houdini y domina la creación de partículas

Con Houdini tenemos acceso a un flujo de trabajo basado en nodos que nos facilita el manejo y control de los datos que definen nuestros modelos, materiales, animación y efectos. Esta libertad de explorar y prototipar ideas en las fases previas a la producción para luego refinar y escalar en las fases finales de cada plano. Esto es uno de los potenciales de Houdini más importantes y por lo que se ha hecho tan presente en la industria.

particulas en houdini

Si ya has trabajado alguna vez con un paquete 3D o VFX entonces el aprendizaje de Houdini será simplemente transferir tus conocimientos. En Houdini todo es procedural. Esto ofrece un gran abanico de herramientas para tus planos y proyectos. Pero antes de ello debemos entender y asentar las bases de Houdini (cómo piensa y trabaja el programa) para más adelante poder avanzar y enfrentarnos a cualquier tipo de proyecto.

Es por eso que aprender cómo se construyen esas herramientas, qué datos de información se utilizan o cómo podemos jugar con nuestros nodos para conseguir lo que vamos buscando, nos dará acceso a convertirnos en grandes profesionales.

Para obtener el mayor rendimiento y unos resultados impresionantes, la clave está en poder mezclar técnicas que nos brindan control en los comportamientos más complejos de nuestros efectos. Por ejemplo, utilizar volúmenes vectoriales como volúmenes de velocidad o gradiente para controlar el movimiento de nuestras partículas y cómo estas se mueven.

Sobre todo cuando queremos obtener un movimiento muy orgánico de nuestras partículas como las chispas o cenizas que salen de un fuego o incluso conseguir efectos mágicos. Estos están hoy en día muy en auge por producciones de superhéroes o cinemáticas donde vemos como personajes utilizan una especie de energía mágica.

En muchas ocasiones la base de estos efectos son las partículas pero estas, a su vez, están afectadas por una simulación de humo donde obtenemos esos volúmenes de velocidad que tienen un comportamiento de fluido más realista.

Recuerda: cuando veas un efecto, este normalmente está compuesto de muchos efectos y detalles que lo hacen más real, potente e interesante. Ahora solo toca subirte a la aventura de aprender a crear tus efectos.

webinar que son los efectos vfx
Compartir
andres mendoza
Andrés Mendoza
Profesor / Houdini FX / 3D Artist en Animum Creativity Advanced School
FORMACIÓN RELACIONADA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Categorías
Entradas Destacadas
Suscríbete a nuestra newsletter
Animum Formación, S.L. (en adelante, “Animum”), tratará los datos de carácter personal que usted ha proporcionado con la finalidad de atender a su solicitud de información, reclamación, duda o sugerencia que realice sobre los productos y/o servicios ofrecidos por Animum, incluido por vía telefónica, así como para mantenerle informado de nuestra actividad. A su vez, le informamos que vamos a realizar un perfilado de sus datos de carácter personal para poderle enviar información personalizada en función de sus intereses. Puede consultar información adicional pinchando aquí. Usted podrá ejercer los derechos de acceso, supresión, rectificación, oposición, limitación y portabilidad, así como ejercitar los derechos reconocidos en los artículos 15 a 22 del Reglamento (UE) 2016/679, mediante solicitud dirigida Calle Canales 10, local 1, 29002, Málaga, España, o a la siguiente dirección de correo electrónico: arco@animum3d.com, adjuntando copia de su DNI o documentación acreditativa de su identidad. Si lo desea puede consultar información adicional y detallada sobre protección de datos en el siguiente enlace: https://www.animum3d.com/aviso-legal/