the steering nature code algorithm simulation cellular-automata
demo binariodemostración

algorithm - steering - Algoritmos para simular el flujo de fluidos



nature of code steering (10)

Esta no es mi área de investigación, pero creo que esto se considera el trabajo canónico:

Simulación de fluidos para gráficos por computadora

http://www.akpeters.com/product.asp?ProdCode=3260

Además, mira el grupo de animación y modelado de Berkeley

http://www.cs.berkeley.edu/b-cam/

También recomiendo una herramienta como Google Scholar o Citeseer y persuadan la literatura académica.

Tengo una idea de juego que requiere una simulación semi-realista de un fluido que fluye alrededor de varios objetos. Piense en un charco de mercurio en una superficie irregular que se está inclinando en varias direcciones.

Esto es para un juego, entonces el realismo 100% físico no es necesario. Lo más importante es que los cálculos se pueden hacer en tiempo real en un dispositivo con la potencia de un iPhone.

Estoy pensando que algún tipo de autómata celular o sistema de partículas es el camino a seguir, pero no sé por dónde empezar.

¿Alguna sugerencia?



Por lo que sé, en el juego De Blob, una "mancha" de color se mueve alrededor de un entorno blanco, coloreando los objetos con los que tropieza. Esto de alguna manera se activó en mi mente cuando leí tu descripción de lo que pareces querer hacer. (En realidad, no he jugado el juego, así que no tengo idea de qué tan bien se ajusta).

Habiendo dicho eso, me parece recordar que la fluidez del blob es casi artificial en ese juego: básicamente es una esfera, algunas transformaciones leves de tamaño / forma, algunas señales de movimiento y "sonidos fuidios" añadidos que le dan la impresión al jugador. que algo no muy sólido es el personaje principal del juego. No se involucró ninguna programación real de física o simulación.

Parece una buena opción para una pieza de software ejecutable en el iPhone, eso. ¿Eso quizás sea suficiente para ti?


Los métodos de Lattice-Boltzmann son una forma bastante común de simular fluido de forma discreta y autómata celular.

Sin embargo, en aras del rendimiento en tiempo real en un iPhone, puede ser más efectivo simular el fluido como un sistema de partículas y luego encontrar la forma de convertir las partículas en una masa volumétrica. Sospecho que este es el enfoque adoptado por juegos como Aqua Forest .




Probablemente un sistema de partículas es un buen lugar para comenzar. A lo largo de estas líneas, se puede ver en SPH (hidrodinámica de partículas suavizadas) como un enfoque algo más físico para la simulación de fluidos que aún depende de las partículas.


SPH con partículas es probablemente el más rápido para arrancar y funcionar con una ventaja sobre la extensibilidad en viscoelásticos y otras cosas. Publicaré una guía en mi blog mañana que he estado escribiendo durante los últimos días sobre este tema. ( http://blog.brandonpelfrey.com )


La solución de Navier-Stokes basada en cuadrícula siempre es más rápida y la velocidad de cálculo es constante.


¿Es tan escaso que tienes que modelar partículas?

Si es así, recomiendo echar un vistazo a los autómatas celulares Lattice-Gas (LGCA, ver video de ejemplo aquí ).

En resumen, LGCA es una subclase de autómatas celulares donde los estados celulares son tuplas de valores binarios, cada uno representa un canal entre una celda y uno de su vecino, y a través del cual pueden viajar las partículas (el canal es 1 si contiene una partícula, 0 )

El esquema de actualización es entonces una función síncrona paralela de dos pasos que reorganiza las partículas entre los canales dentro de cada celda (colisión) y luego propaga estas partículas al canal correspondiente del vecino objetivo (propagación).