2009-02-17 8 views
7

Durante un tiempo he intentado simular el flujo de agua con algoritmos que eliminé de "Real-Time Fluid Dynamics for Games". El problema es que no parece salir del comportamiento acuático con esos algoritmos.Simulación de agua con una cuadrícula

Yo creo que estoy haciendo algo mal y que esos algoritmos no son todos adecuados para fluidos similares al agua.

¿Qué estoy haciendo mal con estos algoritmos? ¿Son estos algoritmos correctos en absoluto?

Tengo el proyecto asociado en bitbucket repository. (requiere gletools y la última pyglet para ejecutar)

Respuesta

6

Las soluciones basadas en Voxel son adecuadas para simular líquidos y se utilizan con frecuencia en películas. Ron Fedkiw's website da algunos ejemplos académicos, todos los que están basados ​​en una grilla. Ese código es la base de muchas de las simulaciones utilizadas por Pixar e ILM.

Una buena fuente es también Fluid Simulation course notes de Robert Bridson de SIGGRAPH, y él tiene un libro "Fluid Simulation for Computer Graphics" que se desarrolla desarrollando un simulador líquido en detalle.

La respuesta más específica que puedo dar a su pregunta es que los fluidos en tiempo real de Stam para juegos se centran en el humo, es decir. donde no hay un límite entre el fluido (agua) y una región de aire externa. Básicamente, el humo y los líquidos utilizan el mismo mecanismo subyacente, pero para el líquido también necesita rastrear la posición de la superficie del líquido y aplicar las condiciones de contorno apropiadas en la superficie.

2

¿Qué tipo de agua está tratando de simular? ¿Pools de agua que rizan o fluyen líquidos?

No creo haber visto agua fluyendo nunca, excepto en las películas renderizadas. La ondulación del agua es bastante fácil de hacer, este sitio usualmente surge en este tipo de preguntas http://freespace.virgin.net/hugo.elias/graphics/x_water.htm

+0

fluidos líquidos, las piscinas onduladas son bastante triviales, a pesar de que son geniales y ya sé cómo simularlas. :> – Cheery

1

Sí, este tipo de solución basada en vóxeles solo funciona si su líquido está confinado a límites muy discretos y estáticos.

Para simular el flujo de líquido, investigue las partículas. Se han realizado bastantes progresos recientemente para acelerarlos en la GPU, y puedes obtener resultados sorprendentes.

Eche un vistazo a http://nzone.com/object/nzone_cascades_home.html como un gran ejemplo de lo que se puede lograr.

2

Cem Yuksel presentó una charla fantástica sobre su Wave Particles en SIGGRAPH 2007. Ofrecen un efecto muy realista a un costo bastante bajo. Incluso fue capaz de simular la interacción con cuerpos rígidos como cajas y botes. Otro aspecto interesante es que el movimiento del barco no está escrito, se simula a través de la interacción de la hélice con el fluido.

Cem Yuksel's Wave Particles http://www.cemyuksel.com/research/waveparticles/title.jpg

En la conferencia se dijo que tenía la intención de liberar el código fuente, pero no he visto nada. Su sitio web contiene el documento completo y los videos que mostró en la conferencia.

Editar: Acabo de ver tu comentario sobre querer simular fluidos líquidos en lugar de ondulantes piscinas. Esto no sería adecuado para eso, pero lo dejaré aquí en caso de que alguien más lo encuentre útil.

Cuestiones relacionadas