Axiom 2 para simular partículas gaseosas en Houdini

Axiom 2 para simular partículas gaseosas en Houdini. El desarrollador de aplicaciones 3D y VFX Matt Puchala ha publicado Axiom 2, una versión actualizada de su simulador de fluidos gaseosos dispersos que aprovecha la tecnología de trabajo que ofrece la GPU y la CPU, para simular efectos como humo y fuego cuando trabajamos con Houdini.

Axiom 2 es una solución externa a Houdini que simula fluidos volumétricos y efectos visuales. Lo que lo distingue de otros simuladores es su capacidad para ejecutar simulaciones realmente dispersas trabajando completamente con GPU.

El plugin para Houdini se puede utilizar para simular una amplia variedad de efectos como fuego, humo, pirotecnia y otros efectos gaseosos. Ahora ya está totalmente listo para la producción y ofrece todas las características comunes que esperaría de un solucionador de fluidos.

Ya habíamos escrito sobre Axiom en su versión anterior, puedes ver el artículo en este enlace.

Axion 2 para simular partículas gaseosas
Axiom 2 para simular partículas gaseosas

Tecnología OpenVDB y OpenCL en Axiom 2 para simular partículas

Axiom 2 utiliza tecnologías estándar de la industria como OpenVDB para garantizar la compatibilidad con una amplia variedad de motores de renderizado, OpenCL para la compatibilidad con la mayoría de las GPU modernas y tiene un complemento para Houdini de SideFX.

La versión 2 del simulador agrega nuevos tipos de fuentes y fuerzas de simulación, soporte para disipación y difusión de color, un nuevo nodo Volume Visualize y muchas mejoras en el flujo de trabajo y el rendimiento.

El lanzamiento también hace que el software, que anteriormente estaba disponible de forma gratuita, sea un complemento de pago. Aunque sigue siendo gratuito para uso no comercial.

Axiom 2 pasa a ser una alternativa a Sparse Pyro

Una alternativa más rápida al simulador Pyro de Houdini para el desarrollo de vistas. publicado por primera vez en el año 2020. Axiom es un simulador de fluidos gaseosos dispersos acelerado por GPU. Pensado como una alternativa más rápida al simulador Sparse Pyro de Houdini para el trabajo de desarrollo de simulaciones.

Al igual que el simulador nativo, Axiom está destinado a proporcionar retroalimentación de la ventana gráfica casi en tiempo real sobre simulaciones complejas de fuego y humo. Acelerando el desarrollo de la apariencia.

Sin embargo, a diferencia del Sparse Pyro solo para CPU, Axiom se acelera por GPU a través de OpenCL. Buscando de nuevo la potencia de la CPU si una simulación excede la memoria de la GPU. Cada GB de memoria de la GPU es suficiente para aproximadamente unos 8,5 millones de vóxeles.

Axion 2 para simular partículas gaseosas en Houdini
Axiom 2 para simular partículas gaseosas en Houdini

Código interno reescrito por completo en Axiom 2 para simular partículas

Axiom 2 es una reescritura básica del simulador, no es compatible con versiones anteriores, agregando nuevas características en todo el conjunto de herramientas.

Los cambios incluyen una nueva forma de fuente de cono para simulaciones, un nuevo tipo de fuerza de giro para formas de origen. Soporte para disipación y difusión de color y un nuevo nodo de visualización de volumen.

Las mejoras en el flujo de trabajo incluyen rampas de control para la velocidad de viento y enfriamiento. Así como campos de control basados en ejes y nuevas herramientas y configuración de estanterías. Según Puchala, las soluciones que aporta son ahora un cinco por ciento más eficientes en cuanto al uso de memoria.

Pasar proyectos de la versión 1 a la 2

Axiom 1 y Axiom 2 no son compatibles entre sí y no puedes actualizar los archivos y nodos HIP. Se recomienda no intentarlo ya que los resultados pueden ser inesperados.

Axiom 2 es un nuevo simulador con muchas diferencias fundamentales. Estos cambios son buenos a largo plazo, pero si necesitas terminar un proyecto que ya está en marcha. Te sugiero que te quedes con la versión que estabas utilizando. Cuando acabes ese proyecto, entonces puedes actualizar a la segunda versión para empezar algo nuevo.

No puedo obtener los VDB de entrada

Al obtener los datos mediante VDB, Axiom 2 espera que un campo de densidad active regiones para la simulación. Si no proporcionas un campo de densidad con su fuente, el simulador de fluidos no creará ningún vóxel. Sin embargo, si deseas tener una simulación que solo obtiene temperatura o combustible, puedes configurarla para que la use como un campo de activación en la configuración del plugin.

Axion 2 obtener los datos mediante VDB
Axiom 2 obtener los datos mediante VDB

Cambiar las versiones de los nodos en Axiom 2

Cuando trabajas con partículas gaseosas, puede que alguna vez necesites obtener una versión anterior de cualquier nodo. O actualizar uno existente, puedes usar el menú desplegable de definición de activos en el panel de parámetros de cualquier nodo. Para acceder a este menú, sigue los pasos de la imagen a continuación.

Cambiar las versiones de los nodos
Cambiar las versiones de los nodos

Mensaje de error OpenCL -4 en Axiom 2 para simular partículas

El código de error OpenCL -4, o CL_MEM_OBJECT _ALLOCATION_FAILURE en el habla OpenCL. Significa efectivamente que no hay memoria disponible para realizar la operación que desea. Las GPU son cosas volubles que funcionan muy bien hasta que dejan de hacerlo.

A continuación expongo de forma rápida una explicación de cómo trabajan los controladores de GPU. Y lo que sucede cuando intentas hacer algo en tu GPU.

Cuando desees calcular algo en una GPU para partículas gaseosas, como un render o una simulación. El software le dirá a la GPU qué recursos necesita. Y pondrá en cola un montón de trabajo, como trazado de rayos, el cálculo de la iluminación, los sombreadores (Shaders), pasos de simulación y demás. Luego, el controlador examinará lo que se está solicitando y determinará si hay suficientes recursos para ejecutar todo el proceso. Se ejecutará o dará el código de error -4.

Es un proceso bastante seguro pero podemos ayudarle

En el caso de un renderizado, asigna la memoria, renderiza el marco, luego desasigna, libera memoria y sale. Esto es bastante seguro. Todo se está haciendo en un solo proceso y no hay que esperar entre tareas. Cada fotograma es un trabajo único para el proceso.

Sin embargo a la hora de partículas gaseosas, en el caso de una simulación queremos retener la información en memoria entre cada fotograma del sim. El problema es que entre fotogramas la memoria que estamos usando está en un estado volátil. Porque no tenemos ningún trabajo en cola que lo use explícitamente. El controlador solo puede garantizar que la memoria estará allí en el momento en que el trabajo esté en cola. Entre fotogramas podría potencialmente usar esa memoria para otra operación y efectivamente perderíamos esa memoria y obtendríamos el código de error -4.

Las dos operaciones más probables para causar esto serían ver el volumen en la ventana gráfica. O renderizar con un renderizador de GPU y simular partículas gaseosas al mismo tiempo. Podrían ser otras cosas, como por ejemplo si estuvieras jugando a un juego en segundo plano.

La simulación gaseosa puede producir algunos errores si andamos cortos de memoria

Tomemos la ventana gráfica como ejemplo a la hora de simular partículas gaseosas. Acabamos de terminar de simular un fotograma y es hora de que la ventana gráfica actualice el volumen para mostrarlo en pantalla. El controlador de la GPU podría necesitar más memoria de la que realmente hay disponible para mostrar ese volumen. Ve que la memoria que estamos usando para la simulación no se está utilizando. Porque estamos entre fotogramas y no se está ejecutando ningún paso sim actualmente, por lo que decide usar esa memoria para mostrar el volumen.

Axiom 2 para simular partículas y corregir fallos

Luego, cuando vas a simular el siguiente fotograma, obtienes el error porque esa memoria se reutilizó efectivamente para otra tarea.

Obviamente, esto no es lo ideal, pero depende completamente del artista determinar cómo usar sus recursos.

Axiom 2 cambia a la CPU si alcanza un límite de memoria, sin embargo, hay una gran trampa. Solo cambia cuando ve que el número de vóxeles está llegando al límite. No si el conductor decide reutilizarlo sobre nosotros y lanzar el error -4.

Simular partículas gaseosas de volcanes en erupción
Simular partículas gaseosas de volcanes en erupción

Cómo trabaja la CPU con Axiom 2

El trabajo de calculo de la CPU es este, digamos que iniciamos la sim con un millón de vóxeles. Mientras simula partículas gaseosas, si el sistema ve que nos estamos acercando al límite, copiará la memoria de la GPU y luego intentará reasignarla de nuevo con más capacidad. Digamos 1.2 millones de vóxeles. Si no puede hacerlo en la GPU cambiará a la CPU y como guardamos la memoria de la GPU no hemos perdido nuestro progreso.

El error Mid Sim al trabajar con Axiom 2 para simular partículas

Si obtenemos el error Mid Sim y el plugin no esperaba que se alcanzara el límite. Efectivamente hemos perdido esa memoria y no podemos transferirla a la CPU en este momento.

Los únicos consejos que te puedo ofrecer a la hora de simular partículas gaseosas es que… Te asegures de que no estás haciendo ninguna otra tarea relacionada con la GPU mientras simulas. Y debes intentar simular de una sola vez sin detenerse durante largos períodos de tiempo entre fotogramas. En cuanto a la ventana, no la uses. Sé que es una tontería y necesitas ver lo que estás haciendo, pero de hecho usa recursos de GPU. Así que tenlo en cuenta.

Trabajar en modo depuración para solventar errores en Axiom 2

Cuando te encuentras con un problema a la hora de partículas gaseosas, puede ser difícil prestar ayuda. El motivo es que en muchos casos cada ordenador es un mundo, cada sistema es diferente. Además, a las GPU no les gusta dar demasiada información cuando se encuentran con un problema.

Axiom 2 tiene una configuración llamada Modo de depuración que te proporciona más información si se encuentra con un error.

Lo que esto hace es enviar información a tu consola o terminal. Te dice cosas como qué sistema y hardware estás ejecutando. Qué ha sucedido cuando el solucionador intenta usar tus diversos dispositivos. Y errores que podrías haber tenido, y otra información que puede ser muy útil para encontrar solución.

Trabajar en modo depuración para solventar errores
Trabajar en modo depuración para solventar errores

Axiom 2 deja de ser una versión de pruebas y pasa a ser comercial

Sin embargo, para muchos usuarios, el mayor cambio supondrá que ahora el software pasa a ser un plugin comercial. Aunque todavía se puede utilizar de forma gratuita en modo de prueba, o en el modo no comercial Houdini Apprentice.

Compatibilidad de Axiom 2 con Houdini

El sistema Axiom 2 es compatible con Houdini 18.0 y versiones superiores que se ejecutan en Windows, Linux o macOS. El software es independiente del hardware.

Las licencias completas bloqueadas por nodos ahora cuestan 399 dólares y las licencias flotantes 499 dólares.

El software también se puede utilizar de forma gratuita en modo de prueba o dentro de Houdini Apprentice, la edición Indie, esta cuesta 99 dólares.

A continuación dejamos un video con la presentación y posibilidades de esta nueva versión de Axiom 2 para simular partículas.

Axiom Solver 2 pasa a ser una alternativa a Sparse Pyro
Axiom 2 para simular partículas gaseosas en Houdini

Más información y comentarios sobre Axiom 2 en el foro, sigue leyendo…