Size: a a a

RU Rust GameDev — русскоговорящее сообщество

2020 March 09

A

Adevald in RU Rust GameDev — русскоговорящее сообщество
источник

p

polunin.ai in RU Rust GameDev — русскоговорящее сообщество
Ищешь минимальное значение, туда сливается вода с соседних ячеек. Потом вода заливается в те ячейки, с которых только что слилась. И так пока не обойдешь весь граф. Повторяешь пока везде не будет одинаковое количество воды.
источник

A

Adevald in RU Rust GameDev — русскоговорящее сообщество
polunin.ai
Ищешь минимальное значение, туда сливается вода с соседних ячеек. Потом вода заливается в те ячейки, с которых только что слилась. И так пока не обойдешь весь граф. Повторяешь пока везде не будет одинаковое количество воды.
Последнее условние очень шаткое
источник

p

polunin.ai in RU Rust GameDev — русскоговорящее сообщество
Adevald
Последнее условние очень шаткое
Ну например можно когда у тебя разница 0.1, то смешивать воду просто средним арифметическим
источник

MS

Mikola Summer Duck in RU Rust GameDev — русскоговорящее сообщество
Дано:

Давление в ячейке. В рейндже 0.0..1.0. Рассчитывается исходя из уровня —
pressure = capacity / level

В данном конкретном случае давление всегда равно уровню воды, так что маскимальный уровень — 1.0.

Формула силы потока —
flow(a -> b) = pressure(b) - pressure(a)
источник

MS

Mikola Summer Duck in RU Rust GameDev — русскоговорящее сообщество
Алгоритм:
1) Вычислить поток между всеми ячейками.
2) Вычислить новые значения ячеек на основе потоков между ними.
источник

MS

Mikola Summer Duck in RU Rust GameDev — русскоговорящее сообщество
Нужно максимально сохранить энергию системы и не терять вещество. При этом потерями в результате погрешностей флоата можно пренебречь.
источник

p

polunin.ai in RU Rust GameDev — русскоговорящее сообщество
У тебя проблемы с пунктом 2, да?
источник

MS

Mikola Summer Duck in RU Rust GameDev — русскоговорящее сообщество
С пунктом 1.
источник

MS

Mikola Summer Duck in RU Rust GameDev — русскоговорящее сообщество
А ну хотя можно сказать что это с пунктом 2 проблема.
источник

A

Adevald in RU Rust GameDev — русскоговорящее сообщество
У тебя уже есть какой-то задел на то, как вообще указывается направление потока?
источник

p

polunin.ai in RU Rust GameDev — русскоговорящее сообщество
Ну просто разностью, как у тебя в формуле
источник

A

Adevald in RU Rust GameDev — русскоговорящее сообщество
или всё просто будет сделано с помощью балансирующихся циферок?
источник

p

polunin.ai in RU Rust GameDev — русскоговорящее сообщество
Adevald
У тебя уже есть какой-то задел на то, как вообще указывается направление потока?
От большего к меньшему?
источник

MS

Mikola Summer Duck in RU Rust GameDev — русскоговорящее сообщество
Короче наивным способом давление в ячейке может превысить 1.0 или стать меньше 0.0, что меня не устраивает.
источник

MS

Mikola Summer Duck in RU Rust GameDev — русскоговорящее сообщество
Adevald
или всё просто будет сделано с помощью балансирующихся циферок?
А в чём разница?
источник

A

Adevald in RU Rust GameDev — русскоговорящее сообщество
Mikola Summer Duck
А в чём разница?
В том что если мы учитываем движение потока, то внутри труб нужно будет создавать как бы "волны" или "приливы" давления из за того что допустим в одном конце трубопровода случилось резкое повышение давления
источник

A

Adevald in RU Rust GameDev — русскоговорящее сообщество
а во втором случае вся система просто пытается оптимально нормализовать циферки внутри себя
источник

MS

Mikola Summer Duck in RU Rust GameDev — русскоговорящее сообщество
Adevald
В том что если мы учитываем движение потока, то внутри труб нужно будет создавать как бы "волны" или "приливы" давления из за того что допустим в одном конце трубопровода случилось резкое повышение давления
Ну я потом велосити добавлю, это не так сложно на самом деле.
источник

A

Adevald in RU Rust GameDev — русскоговорящее сообщество
Это странно очень, по идее это всё надо было бы сразу в одну систему связать
источник