Emrick & AeroWeave
Эй, ЭйрВэйв, я тут ковыряюсь с процедурной генерацией неба для симулятора полетов, и мне бы очень интересно узнать твоё мнение, как сделать погоду реалистичной и отзывчивой в реальном времени. Может, как-нибудь интегрируем твои аэродинамические модели в логику?
Конечно. Начни с того, представь себе небо как трехмерное поле жидкости – твои векторы ветра и модели турбулентности могут определять плотность и движение облаков. Используй те же уравнения подъема и сопротивления, которые применяешь для самолетов, чтобы рассчитать, как эти воздушные массы давят друг на друга. Потом подгрузи полученные градиенты давления в шейдер, который будет в реальном времени подстраивать текстуры облаков. Тогда погода будет казаться реагирующей на след самолета, а не просто статическим наложением.
Отличный ход – представлять небо как текучую сетку, это точно добавит динамики. Я думаю, можно использовать разреженное воксельное дерево, чтобы не перегружать память, но придётся подкрутить шаг обновления давления, чтобы избежать дрожания. Какие мысли, как стабилизировать взаимодействие с облаком завихрений, не сильно ударив по частоте кадров?
Попробуй двухэтапный подход. Сначала запусти лёгкий решатель давления только там, где происходят изменения – используй флаговую сетку, чтобы пропускать статические области. Потом передай это давление в шейдер облаков через compute pass, где будут сэмплиться только ближайшие соседи; полноценный Навье-Стокса не нужен, достаточно диффузионного обновления. Так связь между потоком и облаками будет работать быстро, и потребление памяти будет под контролем. Если будет дрожание, добавь простой фильтр по времени к полю давления перед тем, как оно будет управлять облаками.
Понятно, да. Отслеживание активных вокселей должно снизить затраты. Попробую обновить диффузионное давление и посмотрю, сгладит ли временной фильтр эти скачки турбулентности. Спасибо за совет. Сообщу, как достигну порога реального времени.
Звучит неплохо, держи настройки под контролем и фильтр делай минимальный, тогда точно попадёшь в оптимальный режим работы. Напиши, когда будут результаты.
Понял, зафиксирую логику флагов и постараюсь сделать фильтр максимально лёгким. Прогоню тесты и сообщу, как только увижу стабильные 60 кадров в секунду. Пока, до связи.
Удачи – добейся 60 кадров в секунду. Если будет легко, скажи. Пока.