В данной статье рассматриваются современные и классические алгоритмы симуляции огня средствами компьютерной графики. В статье описывается эволюция подходов в симуляции огня в кинематографе и индустрии видеоигр. В конце статьи приведен сравнительный анализ наиболее популярных методов симуляции огня.
Ключевые слова: симуляция огня, компьютерная графика, системы частиц, томографическая симуляция, реалистичная симуляция.
Моделирование бесформенных объектов, таких как дым, огонь, туман, дымка является предметом постоянных исследований в области компьютерной графики, поскольку данные объекты не имеют четко очерченных границ и являются мобильными по своей природе. Высокая коммерческая ценность данных эффектов в кинематографе и видеоиграх является двигателем постоянных исследований в данной области. Наибольший вызов представляет моделирование данных объектов в реальном времени, где необходимо получить максимально реалистичную симуляцию за время обновления экранного кадра(60Hz+) [1].
1. Эволюция алгоритмов симуляции огня
1.1 Система частиц
Рис. 1. Взрыв генезис-бомбы
Пионером компьютерной симуляции огня является Reewes W. T. В 1983 году в своей работе он ввел понятие система частиц в качестве примитива для моделирования, анимации и рендеринга [2]. В фильме ”Звездный путь 2: Гнев Хана” он смоделировал так называемую ”расширяющуюся стену огня”, созданную с помощью двухуровневой системы частиц. Система частиц верхнего уровня находилась в центре взрыва генезис-бомбы, она генерировала частицы, которые в свою очередь являлись системами частиц. Эти системы частиц использовались для моделирования взрывов, при которых каждая такая система частиц вела себя как небольшой вулкан, извергающийся в сторону распространения взрывной волны и затухающий под воздействием силы гравитации. Поскольку частицы имеют дискретную природу, для достижения хороших результатов потребовалось колоссальное количество частиц. Но, поскольку моделирование в реальном времени не требовалось, это не оказалось проблемой.
Рис. 2. Стена огня вот-вот поглотит камеру
1.2 Оффлайн симуляция
В данное время наибольшего успеха исследователи добились в нечувствительном к времени симуляции кинематографе. Несмотря на то, что данная работа нацелена на компьютерную графику реального времени, необходимо упомянуть несколько работ в области оффлайн симуляции, поскольку понимание основных идей, заложенных в них, позволил перенести некоторые из них в область графики реального времени.
В публикации 2002 года Nguen и его коллеги представили метод моделирования огня, полностью основанный на физико-математическом подходе [3]. В симуляции использовались несжатые уравнения Навье-Стокса для горячих газов, это позволило также смоделировать эффект расширения, вызванный испарением, и эффект текучести поднимающихся дыма и сажи. Как видно на изображении, данная симуляция отличается реалистичным позиционированием и движением газообразных субстанций. Однако данный подход сложно реализовать в рендеринге реального времени, поскольку необходимо находить решение большого количества комплексных уравнений за время кадра.
Рис. 3. Два горящих полена находятся на земле и являются источником топлива. Бревно, лежащее поперек, еще не загорелось, поэтому пламя его обтекает
В 2008 году Horwath H. и Geiger W. представили инновационную комбинацию симуляции с помощью крупной решетки частиц и тонко настроенных визуально-ориентированных улучшений симуляции, рассчитываемых на GPU [4]. Полученные изображения имеют поразительную детализацию и могут быть легко интегрированы в кинематографические фотоснимки.
Данная техника улучшения симуляции использует особенности и ограничения зрительного восприятия, а также особенности концентрации внимания зрителя. Множество независимых GPU используются для быстрого увеличения качества изображения, что позволяет достичь очень высокого разрешения.
Рис. 4. Три различных кадра симуляции огня. Быстро движущийся огненный шар с искрами. Извивающийся костер. Плотная стена дыма и огня
|
|
(а) Огонь создан с помощью пререндеренного ядра битмапа, которое окружают светящиеся анимированные в реальном времени частицы |
(б) Объемный факел, созданный из непрозрачных полигонов |
Рис. 5. Скриншоты из Quake(1996) [5]
1.3 Онлайн симуляция
Трехмерный огонь, моделируемый в реальном времени, находит свое применение в интерактивных приложениях. Среди интерактивных приложений можно выделить компьютерные игры, в которых необходимость показывать взрывы появилась практически с самого момента их появления. Компьютерные игры являются основными потребителями графических компьютерных анимаций огня. Однако это стало возможным лишь пару десятилетий назад. С тех пор скорость аппаратного обеспечения для рендеринга время росла экспоненциально, открывая возможности для все более и более детализированных эффектов. К сожалению, поскольку игры зачастую являются проприетарными по своей природе, литературных источников по алгоритмам, используемых в играх крайне мало. Компания NVIDIA представила в 2014 году систему NVIDIA FlameWorks. Данная система позволяет добавлять реалистичный огонь, дым и эффекты взрывов в игры. Данная система совмещает передовую симуляцию жидкостей на основе решетки вместе с эффективной системой объемного рендеринга, все оптимизировано для работы в реальном времени. Все вычисления выполняются на GPU с помощью DirectX 11 [7].
Рис. 6. Демонстрация работы NVIDIA FlameWorks
2. Обзор и классификация алгоритмов симуляции огня
Различные методы применяемые при симуляции огня можно условно разделить на следующие группы:
1) текстурный маппинг;
2) система частиц;
3) физико-математические методы;
4) клеточные автоматы;
5) томографическая реконструкция и др.
В 2011 году ZhaoHui W., Zhong Z. и Wei W. представили статью [8], в которой проанализировали современные алгоритмы симуляции реалистичного огня. Ими был проведен анализ наиболее популярных методов по следующим критериям:
1) применимость в реальном времени;
2) степень реалистичности;
3) пространственно-временная сложность;
4) конфигурируемость;
5) интерактивность.
Результаты данного исследования можно увидеть в таблице ниже.
Рис. 7. Сравнение производительности различных методов симуляции огня
Для использования в магистерской диссертации был выбран физико- математический подход, поскольку он позволяет получить качественную реалистичную симуляцию с реалистичным взаимодействием с окружающим миром. Недостатки данного метода в скорости симуляции возможно сгладить с помощью использования современных GPU, оптимизации алгоритмов симуляции, уменьшения объемов симуляции(моделирование небольших источников огня).
Литература:
1. Gillies, Duncan Fyfe. Third Year and MSc Interactive Computer Graphics Course [Text] / Duncan Fyfe Gillies. — [S. l.: s. n.].
2. Particle systems — a technique for modeling a class of fuzzy objects [Text]. — Detroit, Michigan: [s. n.], 1983. — July. — Proceedings of the 10th annual conference on computer graphics and interactive techniques.
3. Physically Based Modeling and Animation of Fire [Text]. — San Antonio, Texas: [s. n.], 2002. — July. — Proceedings of the 29th annual conference on computer graphics and interactive techniques.
4. Stock, Mark. Smoke Water Fire [Text] / Mark Stock // ACM SIGGRAPH 2008 Art Gallery. — SIGGRAPH ’08. — New York, NY, USA: ACM, 2008. — P. 102–102. — Access mode: http://doi.acm.org/10.1145/1400385.1400457.
5. de Kruijf, Marc. firestarter — A Real-Time Fire Simulator [Text]: Master’s thesis / Marc de Kruijf; Computer Science Capstone. — [S. l.: s. n.].
6. Стала ли Far Cry лучше? История серии — Блоги — блоги геймеров, игровые блоги, создать блог, вести блог про игры [Электронный ресурс]. –– 2018. –– Режим доступа: https://www.playground.ru/blogs/far_cry_new_ dawn/stala_li_far_cry_luchshe_istoriya_serii-339049/.
7. Green, Simon. NVIDIA FlameWorks: Real-time Fire Simulation [Text] / Simon Green // ACM SIGGRAPH 2014 Computer Animation Festival. — SIGGRAPH ’14. — New York, NY, USA: ACM, 2014. — P. 1–1. — Access mode: http://doi.acm.org/10.1145/2633956.2658828.
8. Realistic Fire Simulation: A Survey [Text]. — [S. l.: s. n.], 2011. — 12th International Conference on Computer-Aided Design and Computer Graphics.