В этом пятом уроке серии о создании огня и дыма с помощью Fluid simulator в Blender 4.5 мы рассмотрим основные параметры Domain, в частности разделы Settings, Gas, Fire и Collections.
Этот урок является частью мини-серии из 10 эпизодов об основах огня и дыма в Blender 4.5. Чтобы просмотреть полный список эпизодов, нажмите здесь.
Видеоверсия этого руководства в настоящее время недоступна на этом языке. Ниже вы можете посмотреть английскую версию с субтитрами; под видео вы найдете перевод расшифровки на русский язык.
Текстовая расшифровка видео
Здравствуйте! В этом пятом уроке серии о создании огня и дыма с помощью Fluid simulator в Blender 4.5 мы рассмотрим основные параметры Domain, в частности разделы Settings, Gas, Fire и Collections. Некоторые из этих параметров позволяют сделать пламя и дым более живыми и менее однородными.
Начнем с основных элементов раздела Settings.
С параметром Resolution Divisions мы уже знакомы и знаем, что если размер Voxels, отображаемых маленьким кубом в нижней части Domain, очень мал, а сам Domain при этом большой, для выполнения симуляции потребуется больше вычислений и памяти.
Опция Adaptive Domain, расположенная внизу раздела Settings, позволяет Blender динамически изменять размер Domain во время симуляции.

Даже при включенном Adaptive Domain рост Domain по высоте будет происходить только до определенного предела. После этого дым начнет исчезать при соприкосновении с верхней границей Domain, которая будет обрабатываться как Outflow. Ускорить исчезновение дыма можно с помощью специальной опции в разделе Gas, к которой мы вернемся чуть позже.
А пока отключим Adaptive Domain и рассмотрим раздел Border Collisions.
Параметры Border Collisions при включении заставляют стороны ограничивающего объема обрабатываться как препятствия, отражающие пламя и дым, а не как Outflow, что является поведением по умолчанию при их отключении, когда огонь и дым мгновенно исчезают на границах. Если включить Border Collision для верхней границы Domain, дым будет накапливаться под потолком, а распространяясь в стороны, исчезать при достижении боковых граней, поскольку для них Border Collision отключен.
Если включить Border Collision и для остальных сторон, Domain будет вести себя как закрытый ящик, в котором огонь и дым продолжают накапливаться, а не исчезают при соприкосновении со стенками.
Возвращаясь к верхней части панели Settings, мы видим параметры Time Scale и Adaptive Time Steps. Time Scale позволяет замедлять или ускорять симуляцию.

Флажок Adaptive Time Steps, включенный по умолчанию, позволяет алгоритму решать, когда необходимо вычислять больше промежуточных шагов, называемых Steps, для каждого кадра анимации.
Три параметра под этим флажком напрямую связаны с алгоритмом, определяющим, сколько Steps выполнять каждый раз.
Maximum и Minimum понятны интуитивно, а вот CFL Number немного сложнее.
Не вдаваясь в детали реализации, важно понимать, что более высокое значение CFL Number требует меньшего количества Steps и, следовательно, меньшего времени вычислений, но результат будет менее точным.
В симуляциях, где пламя и дым движутся особенно быстро, лучше использовать более низкое значение CFL Number для повышения качества симуляции.
Параметры Gravity по умолчанию отключены, поскольку используются глобальные настройки из вкладки Scene. Если отключить Gravity глобально во вкладке Scene, эти параметры снова станут доступными в разделе Physics и их можно будет изменять.
Параметр Empty Space работает только с элементами Smoke. Voxels, заполненные ниже указанного порога, будут считаться пустыми и игнорироваться в симуляции, что позволяет экономить вычислительное время.
Переходим к разделу Gas. Здесь находятся параметры Buoyancy Density и Buoyancy Heat, которые определяют подъемную силу газов, первая на основе плотности, вторая на основе температуры. Эти значения не представляют напрямую температуру и плотность, а задают подъемную силу, обусловленную ими.
Подсказки к этим параметрам очень наглядные и объясняют, что увеличение значений заставляет газы подниматься быстрее. Buoyancy Heat, в частности, определяет подъемную силу, связанную с теплом дыма. Начальная разница между температурой дыма и окружающей средой задается для каждого объекта Inflow с помощью параметра Initial Temperature. В панели объекта Inflow также есть параметр Density, связанный с Buoyancy Density в Domain.
Параметр Vorticity управляет турбулентностью дыма, что косвенно влияет и на пламя.
Чем выше значение Vorticity, тем более возмущенным будет дым. Будьте осторожны, потому что даже небольшие значения могут создавать очень сильную турбулентность. На экране также показано, как меняется результат при изменении Buoyancy Density, который заставляет дым подниматься быстрее.

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

В разделе Gas также находятся подразделы Noise и Fire, которые позволяют добавить возмущения пламени. Noise в основном влияет на контуры пламени, добавляя множество деталей, что полезно, например, для создания костра или огня в камине, который выглядит более турбулентным и менее однородным.
Параметры Strength и Scale интуитивно управляют интенсивностью возмущений.
Параметр Upres Factor задает дополнительный коэффициент подразделения к базовому разрешению Domain, используемый для создания деталей шума. Это также объясняет, почему симуляция замедляется, поскольку области с шумом рассчитываются с более высоким разрешением.
В разделе Fire мы сразу замечаем параметр Vorticity, как и в разделе Gas. Как и в случае с дымом, Vorticity добавляет турбулентность, здесь уже к пламени. Пламя также имеет температуру, и, как и для дыма, более высокие значения заставляют его подниматься быстрее. Комбинация этих двух параметров дает более высокое и живое пламя.

Раздел Collections содержит два поля для указания Collections, называемые Flow и Effector. Они позволяют учитывать в симуляции только те объекты Flow и Effector, которые принадлежат указанным Collections, если они заданы.
Effectors это специальные элементы, позволяющие задавать объекты, способные отклонять движение огня и дыма. Два типа Effectors, Colliders и Guides, мы рассмотрим в следующем выпуске.
По умолчанию Collections не указаны, поэтому в симуляции учитываются все объекты Flow и все объекты Effector.