Как сделать двумерные частицы жидкими?

45

Предположим, у вас есть хороший способ перемещения ваших 2D-частиц для имитации жидкости (например, воды). Любые идеи о том, как это сделать?

Это для 2D-игры, где перспектива со стороны, как это . Вода будет содержаться в коробках, которые можно разбить, чтобы позволить ей упасть и взаимодействовать с другими объектами. Самый простой способ, который приходит мне в голову - это использовать маленькое изображение для каждой частицы. Мне интересно услышать больше способов отрисовки воды.

Люк
источник

Ответы:

28

Узнайте, как PixelJunk Shooter сделал это (включая симуляцию) в этой презентации (PDF) на GDC2010.


Образец изображения PixelJunk Shooter

Джордж Дакетт
источник
1
Не знал PixelJunk ... действительно хороший пресс. Спасибо!
Люк
Ссылка на трейлер :)
David Гувейя
Что такое СПУ, ППУ, СПУРС?
Мартин Курто
@MartjinCourteaux: они являются частью сотового процессора PS3. Думайте о них как о графических шейдерах, хотя есть некоторые ключевые отличия.
Шон Миддледич
12

Ответ Джорджа Дакетта гораздо более прямой и действительно хорошо изложенный, если вам нужна полностью смоделированная вода в вашей игре. Для смоделированной физики мелкой воды с минимальной точностью (меньше реализма, более игриво) это изображение дало мне невероятный момент ясности:

http://www.patrickmatte.com/stuff/physicsLiquid/

DaveStance
источник
Просто и приятно! На самом деле не думал использовать такой простой шаг постобработки ... просто интересно, справится ли такое устройство, как iPhone. Это кажется хорошей отправной точкой. Спасибо.
Люк
Я могу ручаться за этот подход. Я использовал его один раз в проекте, и он работал прекрасно. Добавьте скосный фильтр, и у вас также будет хороший мениск на ваших каплях.
scriptocalypse
Очень круто! Но я не уверен, насколько хорошо он будет приспосабливаться к персонажу, прогуливающемуся по нему. Это подтолкнет все сферы в одну сторону, не так ли?
Макс
5

Грант Кот разместил на Github часть своего кода для симуляции флюидов с реализациями на javascript (canvas) и C ++ с OpenFrameworks: https://github.com/kotsoft

У него есть несколько демонстраций на его аккаунте на YouTube: http://youtu.be/HqWheJSEiaw

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

michael.bartnett
источник
Мне очень нравится, как Грант Кот имитирует жидкости! Даже если рендеринг минимален, по крайней мере, на апплете на этих веб-страницах. Это как много параметров для управления симуляцией. Стоит глубже взглянуть на это. Спасибо.
Луки