Houdini FX: RBD Solvers, Bullet y problemas con geometría cóncava.
Aprovechando mi proyecto de fin de máster, voy a desarrollar una serie de post para explicar conceptos en Houdini FX que ayuden a entender la forma de trabajar de este programa, ya que muchas veces nos centramos en realizar los proyectos sin saber cómo funcionan algunas operaciones que nos podrían ahorrar mucho tiempo de cálculo. Daré por hecho el conocimiento del programa a nivel básico y a la hora de desplazarnos por sus diferentes “Networks”.
En este primer post hablaré de los diferentes tipos de “Solvers” y sus ventajas e inconvenientes a la hora de trabajar con ellos, de economizar tiempos y ganar calidad en nuestra fractura.
Podemos hacer uso de tres tipos diferentes de “RIGID BODY SOLVERS”:
Houdini RBD Solver: Este sistema es el solver del programa, es estable, bastante preciso y muy fácil de usar
Bullet Solver: Éste es nuestro favorito. Es Rápido, Eficiente y nos permite calcular muchísima geometría (es el más usado en los VFX).
ODE Solver: Este sistema “Open Dynamic Engine” es el más básico, casi sin uso ya que solo sirve para simular geometría básica rápidamente. (Bullet sigue siendo favorito).
Estos solvers los podremos seleccionar una vez tengamos montado nuestro DOPNET, dentro de él nos encontramos con 4 nodos de “RBD solver” que son: RBD Solver, Bullet RBD Solver, ODE Solver y rigidbodysolver. El último es el que nos interesa, ya que desde el podemos acceder a los 3 primeros nombrados.
A la hora del cálculo de colisiones con rididbodysolver y configurando nuestro Bullet podemos elegir diferentes tipos de geometría (dentro de nuestro nodo de llamada a la geometría previamente preparada) para agilizar el proceso de cálculo una vez pongamos en marcha nuestra simulación, ya que las fracturas se componen de muchos fragmentos la llamada que haremos será desde un RBDpackedobject que nos permite traernos y computarnos geometría empaquetada.
En el menú de Bullet encontraremos la representación de la geometría con la que realizaremos los cálculos, hay diferentes geometrías básicas como una esfera, un plano, un cilindro…. Pero ya que buscamos variación y cierta credibilidad en nuestra simulación el que mayor prestación nos dará es Convex Hull, ya que Concave es la más costosa de computar, el punto desfavorable es que tendremos que preparar nuestra geometría, Aquí entra el gran problema, y es que en esa preparación de la geometría tendremos que tener muy en cuenta la concavidad y la convexidad de nuestras piezas, objetos como marcos de ventanas, aros o incluso partes de un objeto que superen los 90 grados de forma cóncava no serían válidos para su cálculo preciso. El remedio a este problema es separar dichas zonas del objeto y fracturarlas por separado a la hora de preparar la geometría, de esta manera podremos simular zonas cóncavas de la manera más precisa y economizada posible. Para acabar os dejo una imagen explicativa de este problema en la que explico gráficamente como gestiona y calcula nuestra máquina un Convex Shape y un Concave Shape.