🌊 Эксперимент 1: Водная Гладь и Сила Архимеда
Сетка пружинных столбиков. Проведите мышкой по поверхности, чтобы создать волны, или сбросьте плавающий ящик.
Как устроена вода в Terraria & Badland?
Поверхность воды разбивается на 100-200 вертикальных точек (столбиков). Каждый столбик — это гармонический осциллятор, привязанный пружиной к базовому уровню воды:
Затем за несколько проходов (passes) каждый столбик передает долю своего смещения соседним столбикам слева и справа. В результате по воде разбегаются идеальные круговые синусоидальные волны!
Плавучесть по закону Архимеда (Buoyancy)
Когда погружаемый объект (ящик) пересекает поверхность воды, движок рассчитывает погруженную глубину:
Если плотность тела меньше плотности воды ($\rho < 1$), сила Архимеда перевешивает гравитацию и ящик выталкивается наверх. Вода также оказывает вязкое сопротивление (drag), гася скорость ящика.
💧 Эксперимент 2: Жидкость из Частиц и Метаболы
Капли с отталкиванием по давлению. Наливайте воду, мешайте её курсором и наблюдайте перетекание по наклонным полкам.
Метод SPH (Smoothed-Particle Hydrodynamics)
В методе сглаженных частиц каждая капля имеет радиус взаимодействия. Если капли сближаются ближе нормы, локальная "плотность" превышает эталонную, и возникает сила давления отталкивания:
Вязкость передает импульс между соседними каплями, сглаживая относительные скорости (превращая воду в гель или смолу при повышении ползунка).
Эффект метаболов (Metaball Rendering)
Чтобы капли не выглядели как россыпь шариков от подшипников, применяется трюк отрисовки: капли рисуются с мягким размытием (Blur), после чего накладывается пороговый альфа-фильтр (Color Threshold). Там, где ауры капель перекрываются, они визуально сливаются в гладкую непрерывную водную струю!