В этом уроке, в программе 3DS MAX с помощью плагина FumeFX, создадим дым от сигареты.
Урок основан на базовых знаниях полученных в предыдущей статье Пламя свечи в 3DS MAX с помощью плагина FumeFX. Если Вы не читали эту статью, то рекомендую Вам это сделать, потому как здесь мы пойдём дальше и я уже не буду повторять некоторые простые вещи, подразумевая что Вы с ними уже хорошо знакомы.
Для имитации сигаретного дыма будем использовать плагин FumeFX 5.0.1, установленный в программе 3DS MAX 2016. Где скачать и как установить FumeFX, Вы узнаете, прочитав статью Установка FumeFx, AfterBurn и DreamScape в 3DS MAX 2014 – 2019.
Откройте файл: tut_03_start.max
После установки плагина он должен находиться в папке:
C:\Program Files\Autodesk\3ds Max 20XX\scenes\FumeFX\Tutorials.
Если по каким-либо причинам он у Вас отсутствует, то скачать его можно здесь:
В сцене находиться один единственный предмет – сигарета. Она анимирована и состоит из трёх составных частей: butt (фильтр сигареты), Cylinder01 (тело сигареты), fire (часть сигареты, испускающая дым). Как Вы уже догадались, именно объект fire мы будем использовать для имитации сигаретного дыма.
Создайте габаритный контейнер FumeFX вокруг сигареты как это показано на рисунках ниже (Top и Front):
Высоту контейнера установите около 110 единиц.
Теперь следует создать источник, который будет управлять имитацией дыма.
Перейдите в панель Create, выберите раздел Helpers, раскрыв выпадающий свиток выберите FumeFX и нажмите кнопку Object Src:
Создайте источник в любом удобном для Вас месте сцены. Его положение значения не имеет. Проследите только, что бы он не попадал в зону расположения контейнера созданного на предыдущем этапе. Я разместил его на виде Front, немного левее сигареты:
Не снимая выделение с источника нажмите на кнопку Pick Object (копка с плюсом в кружочке) и выберите fire (та часть сигареты, которая будет генерировать дым), после чего fire должен появиться в списке выбранных объектов:
Снова выберите габаритный контейнер, перейдите на панель Modify, затем откройте окно диалога FumeFX 5.0.1 Com. Перейдите на вкладку gen (General) и укажите путь вывода для моделирования дыма (напоминаю, как это сделать было показано в предыдущем уроке):
Теперь займёмся настройками сигаретного дыма.
Находясь на вкладке gen (General) перейдите в группу элементов управления Simulation Area (Симуляция) и установите значение Spacing (Интервал) равным 0,4 .
Данное значение выбранного интервала приведет к более плотной симуляционной сетке вокселей, благодаря чему процесс моделирования дыма будет более детальным и более точным. Разумеется, такой подход займёт больше места на жёстком диске (при сохранении вокселей) и на расчёт будет потрачено больше времени. Но если в итоге Вы хотите получить более качественный результат, то с этим придётся смириться.
Затем установите значение счетчика порога чувствительности – Sensitivity Threshold равным 0,05:
Теперь следует перейти на вкладку sim (моделирование).
Установите следующие значения параметров:
Quality (Качество) - 4 .
Maximum Iterations (Максимальное количество итераций) - 100.
Advection Stride (завихрения) - 0,3
Time Scale (Масштаб времени ) - 2.
Прокрутите свиток немного ниже и в разделе System установите следующие значения параметров:
Vorticity Strength (Сила Завихрений) - 0,1.
X Turbulence (X Турбулентность) - 0,03. (ПРИМЕЧАНИЕ: это значение повлияет на значения турбулентности X, Y и Z, поскольку они в настоящее время связаны).
В разделе Temperature (Температура) установите параметр Temperature Buoyancy (Температурный сдвиг) равным 1,5:
Поскольку плагин FumeFX применяется для генерации огня и дыма, то сейчас давайте отключим всё то, что способно создавать огонь, поскольку в данном уроке нас интересует только создание дыма.
В разделе Fuel (Топливная группа) снимите флажок Simulate Fuel (Имитировать топливо), чтобы отключить генерацию топлива для горения огня:
Чтобы продолжить процесс отключения огня, перейдите на вкладку ren (Rendering) и в свитке Fire (Огонь) снимите галочку. Теперь генерация огня будет полностью отключена:
Далее продолжим улучшать симуляцию дыма при помощи соответствующих настроек.
Находясь на вкладке ren (Rendering), прокрутите свиток немного ниже и установите значение Opacity (непрозрачности) равное 5:
Данный параметр отвечает за плотность генерируемого дыма. Если Вы хотите сделать дым более плотным (или заметным) этот параметр следует увеличивать, в том случае, если Вы желаете сделать дым менее плотным – этот параметр следует уменьшать. Менее плотные значения хорошо подходят для генерации пара, ведь разница между дымом и паром – весьма условна. К примеру, если Вы моделируете что ни будь из кулинарии, например пар исходящий от блюда с картофелем, или кружки с чаем, значение Opacity следует выбрать относительно небольшим. Исходя из своего опыта скажу что значение следует выбирать от 0.5 и ниже. В данном случае мы выбрали достаточно большое значение равное 5, что бы сделать сигаретный дым более плотным и заметным. По сути, сигарета будет просто коптить. Но если Вы желаете сделать дым идущий от сигареты менее плотным, то теперь Вы уже знаете, как это можно сделать.
На рисунке выше, я не случайно обвёл красным цветом цветовые палитры Color и Ambient Color. Здесь Вы можете выставить цвет генерируемого дыма. В данном случае, мы не будем использовать эту возможность и оставим цвет дыма по умолчанию. Но вы должны иметь ввиду, что эти две палитры – взаимосвязаны и результирующий цвет генерируемого дыма будет зависеть от их настроек.
Итак, на данном этапе генерация огня отключена и в сцене остался только дым, генерация которого будет осуществлять в основном исходя из настроек свитка Smoke, приведённого на рисунке выше. Далее нам нужно определить тот объект, который и будет источником дыма. Если Вы подзабыли, то это один из объектов сигареты с названием fire.
Перейдите на вкладку Obj/Src.
Нажмите на кнопку Pick Object, и выберите источник, который Вы создали в начале урока (это объект с именем FFX Object Src001). Он будет источником для генерации дыма. Надеюсь, Вы помните, что в самом начале мы связали этот источник с частью сигареты fire. Здесь важно понимать, что испускать дым будет не сам источник, а та часть сигареты, которая с ним была связана.
Снова нажмите на Pick Object, на этот раз выберите Cylinder01.
Еще раз нажмите на Pick Object, и на этот раз выберите butt. Они будут отображаться как объекты предваряемые буквой «O». Теперь объекты Cylinder01 и butt будут участвовать в расчётах имитации дыма сигареты:
Поскольку сигарета анимирована, то любое столкновение (или пересечение) Cylinder01 и butt с дымом будет влиять на его поведение.
Раньше мы уже поработали над тем, что бы исключить из сцены все источники огня, но теперь у нас добавился источник (FFX Object Src001). Пока он про проделанную нами раньше работу ничего не знает, так что ему следует об этом сообщить.
Находясь на вкладке Obj/Src, выделите источник FFX Object Src001 (если он не выделен). Прокрутите свиток немного ниже, в разделе Fuel (топливо) нажмите на кнопку Set и в окне диалога, который появиться вместо Set voxel value выберите Channel is disabled, как это показано на рисунке:
Тем самым процесс генерации топлива для источника FFX Object Src001 – будет отключён.
Следующее что нужно сделать – это добавить процессуальную карту текстуры шума в качестве маски для дыма. Эта карта будет определять процесс распространения дыма в пространстве.
В группе Smoke (контроль дыма) нажмите кнопку Disabled (Отключено) и во всплывающем списке выберите Source from Intensity (Источник из интенсивности). Это активирует слот карты рядом с ним:
Нажмите кнопку слота карты , в которой указано None . Появиться стандартный диалог выбора карт текстур Material/Map Browser.
В Material/Map Browser выберите карту шума Noise, после чего она появиться в слоте диалога FumeFX.
Затем откройте редактор материалов 3DS MAX и чтобы вы могли редактировать карту шума, зажав левую кнопку мыши перетащите карту Noise из группы управления дыма FumeFX в пустой слот материала в редакторе материалов и выберите Instance (Образец).
В списке Noise Parameters убедитесь, что Noise Type выбран как Regular, а параметр Size (Размер) установите равным - 6,35 .
Закройте редактор материалов.
Сейчас всё готово для запуска имитации дыма сигареты.
Нажмите кнопку Start Simulation в окне диалога FumeFX 5.0.1 Com.
Теперь запаситесь терпением, потому как процесс может занять некоторое время. Его продолжительность определяется быстродействием Вашего компьютера. Время ожидания можно сократить, если на вкладке gen (General) в группе элементов управления Simulation Area (Симуляция) увеличить значение Spacing (Интервал) с 0,4 до 0,8. Так же можно уменьшить качество просчитываемого дыма уменьшив в свитке sim (моделирование) значение Quality (Качество) с 4 до 2. Но подобные изменения негативно скажутся на качестве визуализируемого дыма после рендеринга сцены.
Как только имитация дыма будет завершена, сделайте анимацию с 0 по 200 кадр, чтобы увидеть результат.
Я это уже проделал и готовый результат Вы можете скачать и посмотреть, кликнув по изображению ниже:
Поскольку на чёрном фоне дым очень плохо виден, я немного доработал наш урок. Изменил фон на градиент синего, что бы сделать дым от сигареты чуть более интересным - поколдовал с палитрами Color и Ambient Color, изменил размер кадра на 1280x720 и увеличил время анимации до 500 кадров.
Вот что получилось в итоге: