Алгоритмы моделирования потока жидкости
У меня есть идея игры, которая требует некоторого полуреалистичного моделирования жидкости, текущей вокруг разных объектов. Подумайте о пуле ртути на нерегулярной поверхности, которая наклонена в разных направлениях.
Это для игры, поэтому 100% физический реализм не нужен. Самое главное, что расчеты могут выполняться в режиме реального времени на устройстве с мощностью iPhone.
Я думаю, что какой-то сотовый автомат или система частиц - это путь, но я не знаю, с чего начать.
Любые предложения?
Ответы
Ответ 1
Это не моя область исследований, но я считаю, что это считается канонической работой:
Моделирование жидкостей для компьютерной графики
http://www.akpeters.com/product.asp?ProdCode=3260
Кроме того, посмотрите на группу анимации и моделирования Berkeley
http://www.cs.berkeley.edu/b-cam/
Я также рекомендую инструмент, такой как Google Scholar или Citeseer, и преподает научную литературу.
Ответ 2
Методы решетки-больцмана являются довольно распространенным способом моделирования жидкости по дискретизированному, сотовому автомат-подобному способу.
Однако, ради производительности в реальном времени на iPhone, может быть более эффективным моделировать жидкость как систему частиц, а затем разработать способ превращения частиц в объемную массу. Я подозреваю, что это подход, используемый играми, такими как Aqua Forest.
Ответ 3
Вероятно, система частиц - это хорошее место для начала. Вдоль этих линий вы можете изучить SPH (сглаженная гидродинамика частиц) как несколько более физический подход к моделированию жидкости, который все еще зависит от частиц.
Ответ 4
Работа Рона Фэдкьюла в этой области довольно ошеломляет.
Еще один комментарий: Моделирование жидкостей - это материал численного параллельного программирования и суперкомпьютеров или, по крайней мере, мощных многоядерных настольных компьютеров. IPhone, вероятно, не сократит его.
Ответ 5
Это также может представлять интерес ( демонстрационное видео, demo binary, исходный код).
Ответ 6
SPH с частицами, вероятно, является самым быстрым, чтобы встать и работать с головным началом на расширяемость в вязко-эластичные и другие вещи. Завтра я опубликую руководство на своем блоге, которое я писал в течение последних нескольких дней по этой теме. (http://blog.brandonpelfrey.com)
Ответ 7
Интересно, думаете ли вы о чем-то вроде Archer Maclean Mercury или Меркурий Meltdown для PSP.
Ответ 8
Насколько я знаю в игре De Blob цветной "blob" перемещается вокруг белая окружающая среда, окрашивающие объекты, в которые она влетает. Это было как-то вызвано в моем сознании, когда я прочитал ваше описание того, что вы, похоже, хотите сделать. (На самом деле не играл в игру, поэтому я понятия не имею, насколько хорошо это подходит.)
Сказав это, я, кажется, вспоминаю, что текучесть блоба в основном искусна в этой игре: в основном это сфера, некоторые небольшие изменения размера/формы, некоторые сигналы движения и добавленные "надежные звуки", которые дают у игрока создается впечатление, что что-то не совсем твердое является главным героем игры. Не было применено никакого физического программирования или моделирования типа.
Звучит как хорошая подгонка для iphone, запускаемой части программного обеспечения. Возможно, этого будет достаточно для вас?
Ответ 9
Это так скудно, что вы должны моделировать частицы?
Если это так, я рекомендую взглянуть на Решетчатые сотовые автоматы (LGCA, см. пример видео здесь).
Короче говоря, LGCA - это подкласс клеточных автоматов, в которых состояния ячеек являются наборами двоичных значений, каждый из которых представляет канал между ячейкой и одним из ее соседей и через которые могут перемещаться частицы (канал 1
, если он содержит частица, 0
в противном случае).
Схема обновления представляет собой синхронную параллельную двухступенчатую функцию, которая реорганизует частицы между каналами внутри каждой ячейки (коллизии), а затем распространяет эти частицы на соответствующий канал целевого соседа (распространение).
Ответ 10
Решение, основанное на сетке Navier-Stokes, всегда быстрее и скорость вычислений постоянна.