Моделируем флюиды, огонь и дым в режиме реального времени

Моя цель - предложение широкого ассортимента товаров и услуг на постоянно высоком качестве обслуживания по самым выгодным ценам.

Замечания о математике, алгоритмах и методах, применяемых при компьютерной симуляции флюидов (например, огня и дыма) в режиме реального времени.

Исходный код к этой статье выложен на GitHub.

Огонь как явление очень интересен с точки зрения компьютерной графики. Раньше огонь было принято имитировать. Например, в фильме «Властелин колец» Питера Джексона для изображения огня использовались спрайты с огромным количеством дыма (на тот момент симуляция флюидов обходилась слишком дорого, даже при бюджете блокбастера). Когда требовалось моделировать огонь в режиме реального времени, например, в видеоиграх, использовались почти исключительно нефизические подходы.

Но в последние 10 лет, благодаря развитию GPU, быстрая симуляция флюидов значительно упростилась. Базовые алгоритмы, описывающие динамику флюидов, не составляет труда реализовать на GPU. В 2009 году компания Industrial Light & Magic воспользовалась этими методами для моделирования и рендеринга огня в фильме о Гарри Поттре. В 2014 году компания NVIDIA выпустила FlameWorks — целую систему для генерации эффектов «огня» и «дыма» в компьютерных играх.

В этой статье мы разберём, как можно имитировать огонь средствами GPU. В частности, поговорим о математике, на которой основана динамика флюидов, обсудим параллельные алгоритмы для моделирования флюидов, а также отдельные характеристики горения, благодаря которым огонь ни с чем не перепутаешь. Предполагается, что читатели статьи хорошо подкованы в векторном анализе и дифференциальных уравнениях (уметь взять градиент вектора). Демо-примеры реализованы в WebGL.

Симуляция флюидов

Прежде, чем имитировать огонь, нужно научиться симуляции флюидов. Предполагаем, что наш флюид несжимаемый и невязкий, что радикально упрощает нашу задачу.

1.1 Базовая динамика флюидов

Допустим, 

Источник: https://habr.com/ru/articles/816451/


Интересные статьи

Интересные статьи

Я работаю в компании STM Labs, где мы строим большие высоконагруженные системы класса Big Data. Эта статья написана по мотивам моего выступления на конференции Saint Highload 2023. Хочу рассказать вам...
В конце января в нашего бота обратной связи обратился айтишник с необычной ситуацией. Он был «сверхзанят» на трёх аутстафф-работах: на основной по трудовому договору и ещё на двух через ИП. ...
Привет, Хабр! Меня зовут Шкердин Данила, я QA Automation-инженер в МТС Digital. В этой статье хочу рассказать о личном опыте прикручивания механики уведомлений к Allure в Telegram ...
Тело человека похоже на машину – для работы ему требуется постоянная подзаправка и техническое обслуживание. Большая часть этих процессов происходит без нашего участия – разве что мы выбираем, что...
Мне удалось раздобыть старые ведомые часы, которые, если судить по их серийному номеру, выпущены в 1960-х годах. Это — Pragotron PJ 27, версия на 12В. Они были сделаны в Чехословакии,...