Обзор ассета симуляции жидкостей Obi Fluid

Пример использования в мобильной игре

В магазине множество симуляторов жидкостей и в основном это 2д поделки основанные на сферах, честных симуляторов по сути и нет. Наверное всех уже задолбала реклама игры с такой механикой, но мне пришлось её программировать лично, а так же выбрать инструменты реализации. Идея была в том, чтобы сделать реалистично и красиво, чтобы при этом всё работало на мобильных телефонах любого уровня. Поэтому попробовав пару готовых решений 2д жидкостей было решено рискнуть и попробова Obi Fluid. Я много занимался созданием визуальных эффектов для фильмов и рекламы, поэтому Obi не был первым движком такого рода, я делал эффекты в Houdini, Realflow, Phoenix, FumeFX и был знаком с тем как всё устроено во всех таких симуляторах. Обычно симуляции занимали сутки. Свою первую симуляцию в RealFlow я считал месяц по ночам ) Поэтому было крайне интересно как же можно добиться реальной симуляции в реалтайме.

Мой видео ролик с симуляцией жидкости для какого-то ивента WarGaming

Obi сразу поразил своими возможностями и качеством, в ассете есть 20 демо сцен с различными примерами симуляций в 2д и 3д которые исчерпывающе дают информацию о том, какие возможности есть и как их использовать.

Ничего не помешало просто сбилдить проект с демо версиями и проверить всё на телефонах, всё заработало сразу и без каких-то проблем, исключая довольно скромный FPS :) Obi использует рендер в текстуру основанный на позициях частиц, поэтому довольно прожорлив для мобильных устройств и в принципе это его основная проблема. Нагрузка идет именно на рендер, сама физика очень хорошо оптимизирована и если не повышать количество частиц до тысяч штук - всё летает практически на любом устройстве и упирается именно в рендеринг. В базовой комплектации шейдер довольно мощный и если его немного оптимизировать руками - то получается приемлиемый по качеству и производительности результат.

В чем секрет? В том, что здесь использован иной подход симуляций, в классических симуляторах идет BruteForce рассчет взаимодействия каждой частицы с каждой частицей, поэтому и занимает сутки. Здесь же применен подход где рассчеты ведутся между ближайшими частицами, поэтому у вас нет доступа к каждой частице и её свойствам, нет возможности узнать с каким коллайдером какая именно частица столкнулась, используются общие ивенты коллизий и это добавляет некоторые проблемы в разработке, но принципиально они решаются.

Например для того чтобы определить смешение лавы с водой пришлось пойти на хитрость и задать жидкостям разные температуры, при смешивании частицы усредняют температуру и по этому параметру можно понять какая жидкость с какой смешалась и соответственно реализовать нужное действие, в нашем случае это генерация камней лава+вода. Если смешивается нефть и лава то происходит взрыв и тп. Все это реализовано через разные порядки температур, например лава это 1000 градусов, а нефть это 0.005 градусов, смешиваясь жидкости получат 999.995 температуру.

В оби есть 4 таких параметра, поэтому можно реализовать довольно интересные механики.

Однако не всё так радужно, при увеличении количества частиц до 1000+ фпс на мобильных телефонах стремительно упадет до 0, и даже многие PC не смогут себе позволить такую роскошь, так что залить всё жидкостями не получится и использовать ассет надо точно понимая его возможности.

прототип процедурно генерируемой игры с копанием земли и жидкостями

Вывод:

Obi Fluid лучший симулятор жидкостей для юнити! Он предоставляет уникальные возможности и производительность, но вы должны чётко понимать его возможности и использовать с умом. Хоть и стоит он 60$ это того стоит!

PS: если вам интересно читать обзоры в таком формате, то ставьте побольше лайков и пишите смешные комментарии, а я буду делиться своим опытом чаще))

15
8 комментариев

Комментарий недоступен

1
Ответить

я купил cloth и ropes, но пока не пробовал, но в планах есть скоро сделать симулятор веревки на выживание )

3
Ответить