Структура симуляции Pyro и Axiom солверов
This project is a student project at the School of Design or a research project at the School of Design. This project is not commercial and serves educational purposes

Pyro Solver

big
Original size 1920x1080
big
Original size 1000x250

Функционал «Pyro Solver» генерирует пиротехническую симуляцию с возможностью редактирования посредством параметров, описанных ранее. Формируется область пламени, а также эмулируется динамика потоков, обусловленная температурным контрастом, отражая естественное явление восходящего движения нагретого воздуха.

0
big
Original size 1000x156

В разделе «sourcing» предоставляется возможность ознакомления с атрибутами, применяемыми в рамках симуляции. Там же можно изучить факторы, оказывающие непосредственное воздействие на ее ход и результаты.

0

В связи с тем, что в рассматриваемом образце отсутствуют атрибуты «density» и «vel», целесообразно деактивировать их использование. При этом визуальное представление пламени остается неизменным. Дополнительное отключение атрибута «temperature» приводит к остановке симуляции движения. Данный факт подтверждает определяющую роль температуры в формировании траектории в рамках данной симуляции.

Для обновления результатов вычислений pyro solver необходимо вернуться к началу временной последовательности. Это позволит устранить визуальную индикацию изменений в симуляции, отображаемую в виде полосы оранжевого цвета.

Voxel Size

Original size 1920x1080
Original size 3000x4000

При рассмотрении прочих важных параметров, расположенных на вкладке «setup», первым заметным элементом является «voxel size». Этот параметр, как известно, оказывает влияние на уровень детализации в симуляции. Настройка данного параметра тесно связана с общим масштабом симуляции. Например, при использовании крупного объекта для создания взрыва, может потребоваться иное значение «voxel size».

Предлагается установить взаимосвязь между параметрами размера вокселей и предыдущим узлом. Для этого необходимо скопировать значение из «pyro solver» и вставить его как референс в «volume rasterize attributes». Данная функция упрощает процесс настройки симуляции, так как изменение значения «voxel size» в «pyro solver» автоматически отразится и в предыдущем узле. Это позволяет оптимизировать рабочий процесс и обеспечивает согласованность параметров в процессе симулирования.

Time Scale

Original size 1059x218
Original size 2000x1000

Важным аспектом в настройке является «Time Scale». Этот параметр определяет скорость выполнения симуляции, предоставляя возможность создавать эффекты замедленной съемки. Замедленная съемка часто используется в кинематографе и игровых проектах для придания сценам большей драматичности и зрелищности.

Simulation Type

0

При дальнейшем анализе необходимо учитывать метод моделирования взрыва. В программном обеспечении Houdini доступны три варианта: «Sparse», «Dense» и «Minimal OpenCL». Ключевое различие между ними заключается в подходе к расчету симуляции.

При активации опции «Active Region» во вкладке Fields, в рабочей области отображаются квадраты, визуализирующие область, просчитываемую солвером в режиме Sparse. Следует отметить, что, помимо квадратов, присутствует ограничивающая рамка, имеющая форму прямоугольника. В отличие от режима Dense, Sparse не учитывает данную рамку при расчетах.

Вычисления основаны на параметрах, указанных во вкладке Bounds. Именно атрибуты, содержащиеся в этой вкладке, определяют активную область, которая учитывается в режиме Sparse. Таким образом, конфигурация Bounds непосредственно влияет на область симуляции, используемую солвером.

Original size 1920x1080

При выборе варианта Dense становится очевидным исчезновение активной области, оставляя лишь ограничивающую рамку. Это является ключевым отличием между двумя подходами к вычислениям. Dense метод обрабатывает всю ограничивающую область целиком, в то время как Sparse метод принимает во внимание только необходимую активную область, представленную в виде квадратов. Разница заключается в объеме вычислений: Dense подходит для случаев, когда требуется анализ всего пространства, а Sparse оптимизирован для ситуаций, где важна только активная часть.

0

При использовании метода «Minimal OpenCL» значительная часть параметров становится недоступной, поскольку вычисления симуляции выполняются посредством видеокарты.

В разделе «Sourcing» предоставляется возможность самостоятельной настройки количества кадров и повторений, используемых в симуляции. Кроме того, пользователь получает ручное управление активной областью. Важно отметить, что pyro в данном режиме не выполняет кэширование шагов, что отличает его от Dense и Sparse методов, где нижняя полоса индикации окрашивается в синий цвет.

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

Advection-Reflection

0
Original size 2000x1000

Следующий функционал, доступный для применения в рамках моделирования, — это «Advection-Reflection». Прежде чем активировать данную функцию, необходимо деактивировать ограничивающие рамки, которые были сгенерированы автоматически при использовании режима Minimal OpenCL.

«Advection-Reflection» в действительности выполняет вычисление специфических дополнительных сил в симуляции. Пользователю предоставляется возможность выбора одинарной или двойной проекции. На представленной анимации можно наблюдать, как происходит хаотичное распространение пламени в различных направлениях.

Collision

Original size 1920x1080

Важным аспектом, требующим рассмотрения, является коллизия. Данный эффект становится необходимым, когда объект вступает во взаимодействие с имитацией дыма или взрыва, оказывая воздействие на ее динамику. В рамках Pyro солвера коллизию можно реализовать посредством SDF или непосредственно через геометрию. Целесообразно проанализировать различия между этими подходами к моделированию столкновений.

0
Original size 2000x1000

Стандартная сфера применяется в роли геометрии для обнаружения столкновений, а также создаётся непродолжительная анимация, предназначенная для частичного перекрытия пламени. Для одновременного визуального контроля как сферы, так и процесса моделирования, курсор направляется на pyro solver, затем активируется красная стрелка в узле «transform». Формирование ключевых кадров может быть инициировано нажатием на иконку ключа в нижней правой части интерфейса, либо через раздел «translate» в узле, отвечающем за трансформацию геометрии. В указанном разделе, при помощи правой кнопки мыши, выбирается опция «keyframes» и затем «set keyframe».

Для интеграции сферы в pyro solver, необходимо установить связь между цепочкой узлов, содержащей анимацию геометрии столкновений, и соответствующим входом в солвере, где указывается «collision geometry». Данная конфигурация позволяет создать визуальный эффект, при котором сфера временно взаимодействует с дымом, частично его перекрывая.

0
Original size 3000x1000

В процессе обработки столкновений возможно применение атрибута «velocity» для создания небольшого вихревого эффекта и притягивания к объекту. Для реализации указанной функциональности необходимо извлечь ноду «collision source», которая выполняет расчет скорости и генерирует VDB, дальнейшее рассмотрение которого будет представлено позднее.

Для регулирования величины скорости применяется функция «display point trails», расположенная в меню справа. Данная функция визуализирует векторы скорости посредством отображения голубых линий, наглядно демонстрирующих динамику перемещения.

0
Original size 3000x1000

В качестве объекта столкновения допустимо применение объема, сформированного на основе геометрии, представленной на втором выходе ноды «collision source». Однако, при создании пустого объекта и последующем анализе его атрибутов, обнаруживается отсутствие атрибута скорости «v». Тем не менее, возможно выполнение растеризации атрибута скорости из исходной геометрии, аналогично предыдущим шагам. Далее необходимо извлечь «merge», чтобы обеспечить видимость поля скорости «v» для Pyro в процессе симуляции.

Для разрыва соединения между узлами используется сочетание клавиши «Y» и последующее перекрытие соединительной линии. При использовании объема в качестве объекта столкновения, следует убедиться, что в настройках симуляции Pyro вместо параметра «collision geometry» указано «SDF + Volume Velocity». Данная настройка позволяет корректно учитывать объемную коллизию в процессе симуляции.

Sourcing || Temperature

Original size 1920x1080

После ознакомления с основными принципами настройки столкновений, рекомендуется вернуться к разделу «Sourcing». Следует обратить внимание на возможность изменения и адаптации ранее созданных полей для решения конкретных задач. Кроме того, каждый параметр обладает математическими функциями. В связи с этим, предлагается рассмотреть влияние различных вычислений на процесс симуляции, основываясь на двух ранее созданных атрибутах.

Экспериментирование с математическими операциями позволит более глубоко понять их влияние на поведение системы. Анализ изменений в симуляции с различными математическими вычислениями способствует более полному пониманию принципов работы симуляции.

Original size 3000x1000
Original size 3000x1000

В операции «Pull» так же есть такие параметры как:

1. Acceleration Strength (сила ускорения) 2. Decceleration Strength (сила замедления)

Поэтому автор визуального исследования поэкспериментировал с параметрами, чтобы увидеть различия.

Original size 3000x1000

Все остальные операции с температурой оставляют сферу в виде статичного огня. Однако существует возможность изменить параметр «Source Scale», который определяет общее количество температуры в симуляции.

Original size 3000x1000

Были изучены параметры «Temperature», автор визуального исследования предлагает перейти к анализу «Burn», а также добавить дополнительные поля для оценки их влияния на симуляцию.

Sourcing || Burn

0

Все остальные операции прекращали запуск симуляции, и сфера исчезала, поскольку указанные математические операции полностью устраняли любые значения.

Как и при предыдущем эксперименте, был протестирован pull, результаты которого представлены ниже. Кроме того, было выявлено, что параметр sourcing scale оказывает влияние на количество огня в симуляции.

0

Sourcing || Density

0

Предлагается создать атрибут «density». Для этого необходимо вернуться к ноде «pyro source» и добавить данный атрибут во всплывающем меню. После этого его следует растеризировать, как было выполнено ранее с атрибутами «temperature» и «burn». При активации «density» в pyro solver станет возможным наблюдать дым в симуляции. Дополнительно рекомендуется отключить поле «burn» для более детального изучения нового атрибута, аналогично рассмотрению предыдущих.

Original size 3000x1000
Original size 3000x1000

Можно заметить, что поведение дыма похоже на то, что наблюдалось с атрибутом «burn», однако без визуализации огня. Это связано с тем, что визуализацию отключили в полях для акцентирования внимания исключительно на параметре «density».

Original size 3000x1000
Original size 3000x1000

Sourcing || Velocity

Original size 1920x1080

Velocity добавляется в симуляцию точно так же, как и предыдущие атрибуты.

Original size 3000x1000
Original size 3000x1000

Атрибут скорости функционирует по направлению «velocity», которое отображается с использованием голубых линий. Кроме того, при использовании симуляции частиц в качестве скаттера точек, дым или взрыв могут самостоятельно следовать траектории, определяемой направлениями частиц.

Original size 3000x1000
Original size 3000x1000

Sourcing || Divergence

Original size 1920x1080

Атрибут «divergence» требуется создать аналогичным образом, при этом его название следует указать вручную в ноде pyro source.

Original size 3000x1000
Original size 3000x1000

В данной симуляции атрибут формирует небольшой вихрь, однако изменения проявляются с меньшей интенсивностью по сравнению с воздействием других полей.

Original size 3000x1000
Original size 3000x1000

Look

Original size 2000x1000

В настоящее время подготовлена симуляция с указанными настройками.

0

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

На данной вкладке можно увеличить плотность и объем дымовых эффектов, изменить цвет различных элементов, а также скорректировать отображение теней в симуляции.

Детальное рассмотрение этих параметров представляется излишним, поскольку выбор данных настроек полностью зависит от предпочтений создателя эффекта.

Fields

Original size 1920x1080

Рекомендуется перейти к вкладке «Fields», которая оказывает влияние на поля в симуляции. Каждый из представленных параметров необходимо рассмотреть в различных настройках, чтобы определить их конкретное воздействие.

Dissipation || Density

Original size 3000x1000

Параметр «Dissipation» оказывает влияние на поле «Density», определяя интенсивность рассеивания дыма. При снижении данного значения наблюдается увеличение концентрации дыма в отдельных областях.

Cooling rate || Temperature

Original size 3000x1000

«Cooling rate» определяет скорость, с которой объект теряет температуру со временем. Чем выше данное значение, тем быстрее дым охлаждается, а значит быстрее исчезает.

Diffusion || Temperature

Original size 3000x1000

«Diffusion» — это процесс «размазывания» температуры: горячие области передают часть своего тепла более холодным соседним областям, благодаря чему разница температур выравнивается, то есть чем выше данное значение, тем быстрее размывается температура, а значит теплые области не выражены так ярко и немного теряются детали, так как границы между горячим и холодным дымом более плавные.

Emit from Flame || Flame

Original size 3000x1000

При включении «Emit From Flame» эмиссия происходит именно из тех участков симуляции, где уже есть пламя, то есть из областей с определённой температурой

Original size 3000x1000
Original size 3000x1000

Как можно заметить, есть две математические операции — «Add» и «Pull», в которых есть возможность настроить размер выхлопа, а так же ее силу.

Original size 3000x1000

Color

0

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

Shape

Original size 1920x1080

Следующая и заключительная вкладка в данной части визуального исследования — Shape. На экране представлено множество настроек, оказывающих влияние на симуляцию

Buoyancy

Original size 3000x1000

Buoyancy работает по законам физики: горячий воздух или газ легче холодного и поэтому поднимается вверх. С помощью данного параметра можно настраивать, насколько быстро и сильно поднимаются горячие частицы.

Множитель для общей силы плавучести позволяет быстро настроить симуляцию, делая её более «летучей» или «подавленной», не трогая остальные параметры.

Original size 3000x1000

Ambient Temp задает базовую температуру окружающей среды, влияющую на всю симуляцию. Чем выше ambient temp, тем быстрее и мягче будет выглядеть дым и пламя.

Original size 3000x1000

Reference temp — это температура, которая задается как эталон или база для расчетов внутри симуляции. Обычно используется для стабилизации и контроля поведения тепловых эффектов и влияет на чувствительность симуляции к изменениям температуры.

Buoyancy || Gravity

Original size 3000x1000

Gravity acceleration — параметр, который влияет на ускорение гравитации, следовательно, чем больше данный параметр, тем быстрее поднимается симуляция в зависимости от того, в какую сторону гравитация направлена.

Original size 3000x1000

Gravity direction отвечает за направление гравитации, которое может указать пользователь.

Buoyancy || Density influences gravity

Original size 3000x1000

Более того, есть возможность указать насколько сильно плотность (дым) влияет на гравитацию. Чем выше данный параметр, тем сильнее уходит pyro solver в сторону гравитации.

Original size 3000x1000

Terminal Velocity — это максимальная скорость, которую может достичь частица или газ, когда они движутся под воздействием силы тяжести и сопротивления среды.

Wind

Original size 3000x1000

Параметр Wind отвечает за ветер вокруг взрыва или дыма, направление и скорость которого можно регулировать в настройках.

Turbulence

Original size 3000x1000

В Pyro Solver параметр Turbulence отвечает за создание и управление эффектами турбулентных движений в симуляции дыма, огня и газов. Он добавляет случайные вихревые движения, благодаря чему поведение газа выглядит более естественно и хаотично.

Original size 3000x1000

Swirl Size отвечает за масштаб вихревых движений или «закрученности».Он влияет на то, насколько крупными или мелкими будут вихри, создаваемые турбулентностью.

Original size 3000x1000

Так же специалист может настроить грубость вихря, с помощью параметра roughness.

Original size 3000x1000

Pulse Length отвечает за временной диапазон или длительность всплесков турбулентности и силы воздействия в симуляции.

Disturbance

Original size 3000x1000

Стоит отметить, что в данном параметре также имеются настройки roughness и pulse length, однако их влияние выражено менее заметно, чем в turbulence. В дальнейшем предлагается сосредоточиться на анализе влияния остальных параметров, оказывающих воздействие на pyro solver.

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

Shredding

Original size 3000x1000

Параметр Shredding влияет, насколько сильно будет разрушаться структура пламени во время симуляции.

Flame expansion

Original size 3000x1000

Данный параметр влияет на силу расширения пламени. Чем выше данный параметр, тем сильнее распространяется пламя.

Viscosity

Original size 3000x1000

Viscosity — это мера сопротивления течению газа. Чем выше вязкость, тем более «густой» и медленный в движении объект.

Настройки Pyro Solver были разобраны достаточно подробно, поэтому автор визуального исследования предлагает перейти к следующему разделу и приступить к рассмотрению Axiom Solver.

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

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

Bibliography
1.

«Houdini» //Side FX URL: https://www.sidefx.com/docs/houdini/basics/index.html (дата обращения: 07.11.2025)

2.

«Справка по HOUDINI. Инструментарий процедурной анимации и не только» //Houdini help URL: https://houdinihelp.ru/ (дата обращения: 15.11.2025)

Image sources
Show
1.

«Фото По Запросу Большой взрыв 4k» // FREEPIK URL: https://ru.freepik.com/photos/%D0%B1%D0%BE%D0%BB%D1%8C%D1%88%D0%BE%D0%B9-%D0%B2%D0%B7%D1%80%D1%8B%D0%B2-4k?log-in=google#uuid=041bc370-8de2-475a-9aac-f4f27bcd3e91 (дата обращения: 01.12.2025)

2.

«Как делаются киновзрывы» // LIVEJOURNAL URL: https://kak-eto-sdelano.livejournal.com/44653.html (дата обращения: 12.11.2025)

3.

«„Начинка“: Как снимались легендарные сцены „Правдивой лжи“, „Дня независимости“ и „Пятого элемента“» // FilmPro URL: https://www.filmpro.ru/materials/29670 (дата обращения: 12.11.2025)

4.

«Maze Runner: The Death Cure VFX | Breakdown — Compositing | Weta Digital» // Youtube URL: https://youtu.be/ac8Y8PIonwU?si=mYdxWpi1Tfg0946m (дата обращения: 12.11.2025)

5.

«Росомаха: Бессмертный | The Wolverine (2013)» // RUTUBE URL: https://rutube.ru/video/4bcd125a4a7e89e528561e54ee1ef0fe/?r=wd (дата обращения: 10.11.2025)

6.

«Вид апокалиптического взрыва ядерной бомбы» // FREEPIK URL: https://ru.freepik.com/free-ai-image/view-nuclear-bomb-apocalyptic-explosion_84691552.htm#fromView=keyword& page=1& position=38& uuid=fedbc237-945a-41b1-8e17-5f3082e54c30& query=%D0%91%D0%BE%D0%BB%D1%8C%D1%88%D0%BE%D0%B9+%D0%B2%D0%B7%D1%80%D1%8B%D0%B2+4k (дата обращения: 10.11.2025)

Структура симуляции Pyro и Axiom солверов
Chapter:
1
2
3
4
5