Водное моделирование с сеткой - PullRequest
7 голосов
/ 17 февраля 2009

Некоторое время я пытался смоделировать текущую воду с помощью алгоритмов, которые я очистил от "Жидкостная динамика в реальном времени для игр" . Проблема в том, что с этими алгоритмами я не выхожу из воды.

Я, наверное, делаю что-то не так, и что эти алгоритмы не все подходят для жидкостей, подобных воде.

Что я делаю не так с этими алгоритмами? Эти алгоритмы верны вообще?

У меня есть связанный проект в хранилище bitbucket . (для запуска требуется gletools и новейший pyglet )

Ответы [ 4 ]

6 голосов
/ 01 мая 2009

Вокселевые растворы прекрасно подходят для моделирования жидкостей и часто используются в пленках. На сайте Рона Федкива приводятся некоторые академические примеры - все они основаны на сетке. Этот код лежит в основе многих симуляций, используемых Pixar и ILM.

Хороший источник - также заметки о курсе Роберта Бридсона от SIGGRAPH и его сайта . У него есть книга «Моделирование жидкости для компьютерной графики» , в которой подробно рассматривается разработка симулятора жидкости.

Наиболее конкретный ответ, который я могу дать на ваш вопрос, заключается в том, что жидкости Stam для игр в реальном времени сосредоточены на дыме, т.е. где нет границы между жидкостью (водой) и областью внешнего воздуха. В основном для дыма и жидкостей используется один и тот же базовый механизм, но для жидкости вам также необходимо отслеживать положение поверхности жидкости и применять соответствующие граничные условия на поверхности.

2 голосов
/ 01 мая 2009

Cem Yuksel представил фантастический доклад о своих Wave Particles на SIGGRAPH 2007. Они дают очень реалистичный эффект при довольно низкой стоимости. Он даже мог имитировать взаимодействие с твердыми телами, такими как коробки и лодки. Еще один интересный аспект заключается в том, что движение лодки не определяется сценарием, а моделируется взаимодействием гребного винта с жидкостью.

Cem Yuksel's Wave Particles
(источник: cemyuksel.com )

На конференции он сказал, что планирует выпустить исходный код, но я еще ничего не видел. Его веб-сайт содержит полную статью и видео, которые он показал на конференции.

Редактировать: Только что увидел ваш комментарий о желании имитировать текучие жидкости, а не волнистые лужи. Это не подходит для этого, но я оставлю это здесь на случай, если кто-то найдет это полезным.

2 голосов
/ 17 февраля 2009

Какой тип воды вы пытаетесь смоделировать? Бассейны с водной рябью или текучие жидкости?

Не думаю, что когда-либо видел проточную воду, кроме как в фильмах. Рябь воды довольно легко сделать, этот сайт обычно возникает в этом вопросе.

1 голос
/ 17 февраля 2009

Да, этот тип решения на основе вокселей действительно работает, только если ваша жидкость ограничена очень дискретными и статическими границами.

Для моделирования протекающей жидкости проведите некоторое исследование частиц. За последнее время был достигнут значительный прогресс в их ускорении на GPU, и вы можете получить потрясающие результаты.

Взгляните на http://nzone.com/object/nzone_cascades_home.html как на прекрасный пример того, чего можно достичь.

...