Как сделать огонь в 3д макс
Камин с огнем
1) Начнем с построения фасада основной части камина. На панели Create (Создать) выбираем Splines (плоские фигуры) и рисуем прямоугольник (Rectangle) в окне Front (Вид спереди).
В том же окне рисуем второй прямоугольник с меньшими размерами и размещаем эти прямоугольники по центру.
Активизируем большой один из прямоугольников. Переходим на вкладку модификаторов и выбираем из списка модификатор Edit Spline (Редактор сплайнов). Этот прямоугольник нужно прикрепить с другим. Для этого на панели Geometry того же модификатора нажимаем на кнопку Attach (Прикрепить) и щелкаем мышью на второй прямоугольник. Теперь они составляют один единый плоский объект из двух сплайнов.
Нужно из большого прямоугольника вырезать маленький. Для этого выбираем один из инструментов выделения (Select Object) и на панели Selection выбираем Spline (сплайн) и щелкаем на большом прямоугольнике. Он выделится красным цветом.
На панели Геометрия выбираем команду Boolean (Логические). Выбираем опцию Subtraction (Вычитание).
Затем щелкнув на кнопку Логические указываем сплайн малого прямоугольника. В итоге у нас получится вот такая фигура, напоминающая стол примитивной формы.
Хочу добиться того, чтобы проем в камине имел арочную форму. На панели Selection выбираем Segment и активизируем горизонтальную сторону полученной фигуры.
На панели Геометрия щелкаем на кнопку Divide (деление). При этом сегмент разделится на две ровные части.
Затем активизируем Vertex (точку). Выбираем середину разделенного сегмента и поднимаем ее верх.
Выделяем две угловые точки этого сегмента, открываем контекстное меню и выбираем тип вершины Corner (острый угол).
2) Объем основной части камина и наложение текстуры. Придаем объем объем. Выбираем модификатор Extrude (Выдавливание) и задаем толщину (Amount).
Хочется красивой текстуры для камина. Для этого используем редактор материалов (клавиша M).
Красным цветом выделана верхняя кнопочка для передачи материала на выделенный объект.
Вторая кнопочка, где Диффузия, предназначена для выбора рисунка материала. Щелкаем на ней.
Выбираем New (Новый) и один из понравившихся вариантов (я выбрала Cellular).
На свой вкус меняем параметры выбранной фактуры и выходим на базовую страничку редактора материалов - кнопка Go to Parents (к предкам). Эта кнопка выделена красным цветом.
Раскрываем панель Maps (Карты), содержащая все основные параметры материала (диффузия, блеск, непрозрачность и т.д.). Нам нужна карта для Bump (в переводе Удар, а вообще означает рельефность), щелкаем на None. Далее выбираем опцию Mtl Editor. Выбираем ту карту, которая соответствует диффузии данного материала.
Для просмотра результата активизируем окно Перспектива и жмем на клавишу F9 (или F10 в случае просмотра с другого окна)
3) Строем дымоход. Его будем создавать методом лофтинг-объекта. Для этого в окне Top (Вид сверху) рисуем квадрат, а в окне Front прямую вертикальную линию (Line), удерживаю клавишу Shift.
Активизируем прямую линию. Переходим на панель Создать, затем Геометрия, из списка выбираем Compound Objects (Составные объекты).
Выбираем Loft. Основные компоненты лофтинг-объекта: Path - путь, Shape - форма. У нас путь - это прямая линия, поэтому щелкаем на кнопку Get Shape (указать форму), затем указываем на квадрат.
Получился у нас параллелепипед.
Для придания нужной формы дымохода переходим на панель модификаторов. Нам нужна панель Deformation (Деформация). Для регулирования толщины служит Scale (масштаб).
На рисунке желтая точка, обрамленная красным кружком, служит для добавления точек. Перемещением этих точек мы редактируем форму по толщине.
Придаем металлический материал дымоходу (клавиша M).
Specular Highlight отвечают за блики.
4) Создаем бревна. Переходим на панель Создать/Геометрия, из списка выбираем Стандартные примитивы. В окне Фронта создаем цилиндр (Cylinder). Чтобы получить полуцилиндр, нужно установить флажок Slice on (по кусочкам).
Для придания древесины открываем редактор материалов (M). Если есть библиотека материалов, то Standard ---> Mtl Library (библиотека), выбираем вариант трухлявого дерева.
Если нет библиотеки, то выберем другой путь: Диффузия ---> New ---> Bitmap (Битовое изображение), затем выбираем через Обзор растровый файл с изображением коры дерева.
Дублируем бревна (перемещаем, удерживая клавишу Shift) и меняем их расположение.
5) Пламя. Переходим на панель Helpers (Вспомогательные), из списка выбираем Atmospheric Apparatus (Атмосферный аппарат).
Здесь предоставлен список контейнеров (Гизмо), в Топе создаем сферический контейнер (SphereGizmo). Устанавливаем флажок Hemisphere (полусфера). С помощью инструмента масштабирования (Select and Uniform Scale) растягиваем полусферу по высоте.
Переходим на вкладку модификаторов и на панели Atmospheres & Effects жмем на кнопку Add (Добавить). Добавляем Fire Effect (эффект пламени). Затем выделим синим цветом этот эффект и щелкаем на кнопке Setup (Настройки).
Выбираем тип пламени Tendril (Костер). Уменьшаем размер языка (Flame Size).
Чтобы костер был более реалистичной формы, можно до 3-х продублировать этот же контейнер, но при этом поменять номер вариации пламени (Seed).
6) Металлическое ограждение. С помощью сплайна Line создаем половину решетки в окне Фронт. Здесь будет играть ваша фантазия. Для плавных линий выбираем опцию Smooth (сглаженный), а для ровных линий Corner.
Активизируем одну из линий и переходим на вкладку модификаторов. Прикрепляем все сплайны (Attach).
Для придания объема решетки необходимо открыть панель Rendering и установить флажки Renderable (для отображения сплайнов в рендеринге) и Display Render Mesh (для отображения толщины линии в рабочем окне). Чтобы линии смотрелись более сглаженными, на панели Interpolation устанавливаем флажок Adaptive.
Затем дублируем дверцу ограждения в ходе перемещения вдоль оси X с удерживанием клавиши Shift и, создав копию, зеркально отображаем (Mirror).
Для законченности камина создаем Box (параллелепипед из стандартных примитивов).
7) Освещение от пламени. Переходим на панель Создать ---> Lights (свет). Создаем в виде точки Omni (точечное освещение). Размещаем его в области костра.
Устанавливаем красноватый цвет освещения, флажок Shadows On (установить тени).
В результате получился ночной вариант - сам камин полностью утопает в тени.
Осветим камин, для этого снова создаем Omni перед камином. Его параметры: белый цвет освещения, Multiplier 0,3 (Степень освещения).
В данном уроке мы создадим одну из наиболее востребованных симуляций в Голливуде, которая решается при помощи флюидной динамики, обычно это какой либо объект объятый пламенем (человек, хворост костра и т.д.), в нашем случаи это будет горящий факел. И прежде чем приступить к реализации задачи, нужно рассмотреть такую особенность: из-за большого количества топлива у симуляции будут такие же параметры как и при создании взрыва, а именно цвет, концентрация частиц, дым (по востребованности). В дальнейшем нам нужно будет это учесть. В нашей системе мы создадим именно такой тип эффекта при помощи специального средства 3ds Max Particle Flow.
Реализация эффекта
Путешествие в тысячу миль начинается с первого шага.
(Лао-Цзы)
Шаг 1
Шаг 2
В окне проекции Top создайте пространственный исказитель (Space Warp) Wind и переопределите его координаты-XYZ(0см, 0см, 0см). При выделенном Wind в меню панели Modifier в настройках Parameters установить следующие значения: Strength: 0,15, Decay:0, Turbulence:0,05, Frequency:0,01, Scale:80. Мы добавили Wind для того чтобы создать турбулентность влияющее на пламя из вне, усиливающее эффект. Wind, также будет отвечать за скорость испускаемых частиц.
Шаг 3
Теперь мы можем приступить к созданию системы частиц.
Для того чтобы открыть окно создания и редактирования систем частиц Particle View необходимо нажать клавишу "6" или на панели Create выбрать Geometry и из выпадающего списка выбрать Particle Systems и создать PF Source для того чтобы открылось окно Particle View, но придется удалить созданную по умолчанию систему частиц, поскольку мы будем создавать новую.
В окне редактора Particle View перетащите на рабочую область Empty Flow, далее нажав правой кнопкой мыши, появится контекстное меню, где необходимо выбрать Rename и введите новое название PF_Flame_Source, и при выделенном PF_Flame_Source установить для него следующие параметры: Quantity Multiplier: Viewport=10, Render=100. Для параметра Render устанавливаем Type : Phantom. Почему мы выбрали именно этот тип, поскольку геометрия пламя будет строится поверх геометрии частиц, при рендере и для удобства мы указываем именно этот тип, что и означает что первичная геометрия частиц не будет видна при визуализации.
Шаг 4
Далее необходимо добавить в рабочую область оператор Birth (рождение), данный оператор не просто так называется, поскольку именно он отвечает за порождение частиц. При выделенном операторе Birth установим следующие настройки: Emit Start=0, Emit Stop=300, Amount = 60000. Emit Start означает то с какого кадра частицы будут порождаться, Emit Stop означает именно до какого кадра они будут порождаемы, Amount представляет общее количество частиц порождаемых на промежутке времени Emit Start и Emit Stop.
После того как, мы настроили оператор Birth, теперь необходимо связать основное событие Event01 с PF_Flame_Source, после чего переименовать Event01 на Initial_Flame.
Далее добавить в Initial_Flame следующие операторы: Position Object, Shape, Force, Delete.
Шаг 5
Теперь более подробно об операторах и их настройках.
Position Object, данный оператор отвечает за то где будут находиться испускаемые частицы, иначе говоря с какого объекта они будут испускаемы. При выделенном Position Object в настройках Emitter Objects нажимаем на кнопку By List и из открывшегося окна выбора объектов Select Emitter Objects выбираем наш будущий источник частиц, который называется source и нажимаем Select. На этом работа с Position Object окончена.
Shape, назначает форму для порождаемых частиц. Выделяем оператор Shape и настраиваем следующим образом: Shape выбираем Tetra, Size устанавливаем 1,6 см.
Force, определяет силы воздействующие на поток частиц. Настраиваем следующим образом: в Force Space Warps добавляем пространственный исказитесь Wind. Параметр Influence =610, SyncBy устанавливаем Particle Age.
Delete, отвечает за удаление частиц. Настраиваем: в Remove устанавливаем By Particle Age(Life Span= 28, Variation=7).
Шаг 6
Далее добавляем четыре оператора KeepApart. Прежде чем приступить к их настройке мы должны скопировать PF_Flame_Source, с заданным числом копий равным 3. При копировании выбрать способ копирования Copy. Скопированные экземпляры переименовываем: PF_Large_Flame, PF_Small_Flame, PF_Turbulence.
Теперь возвращаемся к операторам KeepApart и поочереди начинаем их переименовывать так как показано на рисунке: KA_Initial_Flame, KA_Large_Flame, KA_Small_Flame, KA_Turbulence.
Шаг 7
Итак, теперь настроим первый KA_Initial_Flame : Force:-0,2, выбираем Accel Limit=2000 см, Range: устанавливаем Absolute Size, Core Radius=8см, Fallof Zone=6,5 см, в Scope устанавливаем Selected Particle Systems и выбираем в списке PF_Flame_Source.
Мы установили Force отрицательное значение, чтобы склеивать частицы, а не отталкивать их. Данный оператор объединяет частицы, которые в дальнейшем сгруппируют поток огня, при этом когда частицы будут склеиваться вместе, в результате будет образовываться дополнительная геометрия, добавляя пламени больше яркого цвета за счет специального материала, который мы создадим позже. Как уже говорилось выше, данный оператор будет склеивать сталкивающиеся частицы, за поведение частиц отвеют такие параметры как Core Radius, Fallof Zone. Именно этот оператор будет отвечать за формирование основного поведения пламени, которое будет корректироваться последующими KeepApart операторами.
Теперь поочереди настроим следующие операторы:
KA_Large_Flame: Force:-0,2, выбираем Accel Limit=2000 см, Range: устанавливаем Absolute Size, Core Radius=4см, Fallof Zone=4 см, в Scope устанавливаем Selected Particle Systems и выбираем в списке PF_Large_Flame.
KA_Small_Flame: Force:-0,4, выбираем Accel Limit=500 см, Range: устанавливаем Absolute Size, Core Radius=3см, Fallof Zone=2 см, в Scope устанавливаем Selected Particle Systems и выбираем в списке PF_Small_Flame.
KA_Turbulence: Force:0,01, выбираем Accel Limit=1000 см, Range: устанавливаем Absolute Size, Core Radius=2см, Fallof Zone=2 см, в Scope устанавливаем Selected Particle Systems и выбираем в списке PF_ Turbulence.
Каждый из операторов KeepApart имеет относительную связь взаимодействия с сторонними системами частиц (в честь которых они были названы), эти системы частиц будут отличаться уникальными операторами и дополнять основное пламя. Операторы KeepApart повлияют на движение частиц пламени путем привлечения их к системам с которыми у них определена относительная связь, заставляя поток частиц стремится к образованию новой формы. В действительности, благодаря настройкам, поток частиц будет сужаться делая пламя более реалистичным.
Шаг 8
Приступим к созданию сторонних систем частиц которые будут дополнять пламя.
Выделим Initial_Flame, далее скопируем его, при этом указываем способ копирования Paste Instance. Скопированный образец переименовываем на Large_Flame, и далее настраиваем. Операторы Birth, Shape, Force и Delete необходимо сделать уникальными, т.е выделить эти операторы, далее нажать на них правой кнопкой мыши и выбрать из контекстного меню Make Unique.
Birth: Emit Start=0, Emit Stop=300, Amount = 12000
Shape: Shape выбираем Tetra, Size устанавливаем 1 см.
Force: Influence =810, SyncBy устанавливаем Particle Age.
Delete: в Remove устанавливаем By Particle Age(Life Span= 32, Variation=8).
Шаг 9
Теперь необходимо повторить такую же процедуру и с событием Large_Flame, создав образец(Paste Instance), переименовываем его на Small_Flame. Делаем уникальными следующие операторы: Birth, Shape, Force, Delete.
Birth: Emit Start=0, Emit Stop=300, Amount = 10000
Shape: Shape выбираем Tetra, Size устанавливаем 2,1 см.
Force: Influence =720, SyncBy устанавливаем Particle Age.
Delete: в Remove устанавливаем By Particle Age(Life Span= 23, Variation=6).
Шаг 10
Создаем образец Small_Flame переименовывая копию в Turbulence. Делаем уникальными следующие операторы: Shape, Force, Delete.
Shape: Shape выбираем Tetra, Size устанавливаем 1,4 см.
Force: Influence =840, SyncBy устанавливаем Particle Age.
Delete: в Remove устанавливаем By Particle Age(Life Span= 32, Variation=8).
Шаг 11
После того как мы настроили события частиц, необходимо их связать PF_Large_Flame с Large_Flame, PF_Small_Flame с Small_Flame, PF_Turbulence с Turbulence.
PF_Large_Flame создаст частицы с большей продолжительностью жизни, тем самым добавит геометрию отрывающихся лепестков пламени от основного потока.
PF_Small_Flame создаст частицы которые усилят общий эффект, увеличив плотность пламени.
PF_Turbulence создаст частицы пламени наиболее подверженные турбулентности, при том воздействуя на все последующие системы.
Теперь все системы частиц готовы, и мы можем приступить к формированию самой геометрии пламя. На данном можете перейти на любой кадр и увидеть то, что получилось.
Шаг 12
Вернитесь к кадру 0, и отключите autoback. На этой стадии, сцену проекта желательно сохранить. Теперь добавьте на сцену оператор BlobMesh. На панели Create выбрать Geometry и из списка выбрать CompoundObjects далее выбрать BlobMesh. Настраиваем BlobMesh: Size=2см, Tension=1. Установите Render и Viewport в Evaluation Coarseness =1 и отключите отображение во viewport установив галочку Off in Viewport. Нажмите на кнопку Pick и выберите PF_Flame_Source, PF_Large_Flame, PF_Small_Flame, PF_Turbulence.
Шаг 13
Теперь добавим к оператору BlobMesh три модификатора: Cap Holes, TurboSmooth и Relax.
Настроим их следующим образом:
Cap Holes: выбираем Smooth New Faces.
TurboSmooth: Iteration =1, Surface Paramets=Smooth Result.
Relax: Relax Value=0,5, Iterations=1. отключите Keep Boundary Pts Fixed.
Добавляем Cap Holes так как сетка BlobMesh малополигональна, в процессе анимации могут появляться случайные артефакты в виде дыр в основной геометрии пламя, в последствии что может привести к некорректной визуализации. TurboSmooth и Relax корректируют форму BlobMesh и добавляют полигонов. На этом мы закончили этап построения геометрии пламя. И теперь необходимо создать специальный материал, который будет эмитировать физические свойства огня.
Шаг 14
Откройте редактор материалов и добавьте в свободный слот материал Raytrace. Назовите материал Flames. Установите материал для Transparency белый цвет. Index of Refr=1, установите Specular Level и Glossiness = 0. Раскройте Extended Parameters и в Advanced Transparency установите флажок Fog, установите для него Start=0, End=120, Amount=3, и добавьте карту Fallof в ячейку материала, настроив его следующим образом: 1Color=R242,G178,B94, 2Color=R232, G91, B0.Теперь настройте как показано на рисунке.
Материал пламя использует настройку Fog материала Raytrace чтобы сгладить текстуру, при этом, его интенсивность будет зависеть от толщены сетки. Это подходит для нашего эффекта, чем толще геометрия тем ярче пламя, и чем тоньше геометрия тем менее интенсивно пламя. Мы устанавливаем два цвета: один для внутреннего цвета другой для внешнего. Если вам покажется, что пламя слишком яркое попробуйте изменить значение End параметра Fog.
Шаг 15
Примените созданный материал к оператору BlobMesh, и можете сделать тестовую визуализацию.
Пример моей визуализации с освещением и glow можно просмотреть:
Заключение
Реализация данного эффекта весьма интуитивна. Поскольку результат может получиться во многом отличный от моего. Основную роль в этом играют операторы KeepApart и их параметры Force, Accel Limit, Core radius, Fallof Zone. Меняя эти параметры Вы можете получить совершенно разные формы потока частиц. В редких случаях форма пламя может быть совершенно неоднородна, следствием этого являются связи с сторонними системами частиц, и изменять настройки придется только для них. Настройки BlobMesh также оказывают не малозначное влияние на формирование геометрии пламя. Изменяя такие параметры как Evaluation Coarseness Render (изменяя от 0,5 до 5) можно получить сильно раздробленное пламя при 5 (и более) и наоборот от 1 ( и менее). Также высоту пламя можно регулировать с помощью операторов Delete, сокращая и увеличивая жизнь частиц, тем самым увеличивается или уменьшается поток огня. Добавляя и удаляя источники частиц в Blob Object можно отследить, то, как именно формируется геометрия и взаимодействуют системы между собой.
Если же Вас не устраивает получившейся результат, то пробуйте изменять, так параметры, как в вашей ситуации будет удобнее для Вас.
В этом уроке в программе 3DS MAX создадим пламя свечи с помощью плагина FumeFX.
Где скачать и как установить FumeFX, Вы узнаете, прочитав статью Установка FumeFx, AfterBurn и DreamScape в 3DS MAX 2014 – 2019.
Откройте файл: tut_01_start.max
После установки плагина он должен находиться в папке:
C:\Program Files\Autodesk\3ds Max 20XX\scenes\FumeFX\Tutorials.
Если по каким-либо причинам он у Вас отсутствует, то скачать его можно здесь:
Итак, на данном этапе, в сцене мы имеем два объекта. Это Cylinder01, имитирующий тело свечи и wick являющийся фитилём свечи:
В процессе выполнения урока, мы добавим к фитилю пламя, что и является нашей конечной целью.
Перейдите на панель Create, раскройте свиток Geometry и выберите FumeFX:
Нажмите на кнопку FumeFX:
и создайте вокруг фитиля габаритный контейнер как это показано на рисунке ниже:
Контейнер, который Вы создали, играет принципиально важную роль при имитации огня свечи. Пламя и дым будут ограничены только этим контейнером. Вне этого контейнера никакой имитации не будет и если его размеры не достаточны, то при рендеринге сцены это будет заметно. Так, например, если высота контейнера оказалась недостаточной, то пламя от свечи будет обрезано сверху. Разумеется, все это легко поправимо - длину, ширину и высоту контейнера всегда можно изменить. Ниже я покажу, как это можно сделать.
Теперь следует создать источник, который будет управлять имитацией огня.
Вернитесь в панель Create, перейдите в раздел Helpers, выберите FumeFX и нажмите кнопку Object Src:
Создайте источник в любом удобном для Вас месте сцены. Его положение значения не имеет. Проследите только, что бы он не попадал в зону расположения контейнера созданного на предыдущем этапе. Я разместил его на перспективном виде немного левее свечи:
Не снимая выделение с источника нажмите на кнопку Pick Object (копка с плюсом в кружочке) и выберите фитиль (wick), после чего wick должен появиться в списке выбранных объектов:
Снова выберите габаритный контейнер, затем перейдите в панель Modify. Нажмите на кнопку Open FumeFX UI:
После того, как Вы нажали на кнопку Open FumeFX UI , откроется всплывающее диалоговое окно FumeFX 5.0.1 Com. Данное окно позволяет управлять всеми процессами имитации. Здесь Вы можете добавлять различные источники и настраивать их поведение.
Выберите кнопку Obj/Src в верхней части диалогового окна. Нажмите на кнопку Pick Object и выберите источник. Теперь диалоговое окно должно выглядеть так, как это показано на рисунке:
Прокрутите свиток с настройками вниз и проследите, что значение параметра Fuel (топливо) равно 100, а значение Temperature (температура) равно 300. Если это не так, то установите требуемые значения:
Теперь перейдите на вкладку gen (General).
Установите значение Spacing равное 0,5. Данный параметр позволяет Вам контролировать количество деталей в имитации.
Убедитесь, что флажок Adaptive - установлен.
Прокрутите свиток ниже.
В свитке Output в разделе Paths Вам необходимо установить путь, по которому будут сохраняться данные имитации. Для этого щелкните по кнопке с изображением папки, затем выберите путь для сохранения данных:
FumeFX сохраняет различные данные имитации. Всё завит от того, какой процесс Вы моделируете. У нас случай довольно простой, так что все сохраняемые данные будут сохранены по тому пути, что Вы укажите в разделе Default. Другие разделы в данном уроке будут не востребованы.
На будущее имейте ввиду, что хорошим решением будет сохранять данные в отдельные папки. К примеру, создайте основную папку для всех имитаций \FumeFXSimData, а затем в этой папке создавайте новые подпапки для различных имитаций.
Переходим на вкладку sim (Simulation).
Убедитесь, что для параметра Quality (Качество) установлено значение 5 , Maximum Iterations (Максимальные итерации) установлены на 200, а Time Scale (Масштаб времени) установлен в 1, если это не так, установите заданные параметры:
Прокрутите свиток ниже.
В разделе Fuel (Распределение топлива) измените Ignition Temperature (температуру зажигания) на 100 , Burn Rate (скорость горения) на 40 и Burn Rate Variation (изменение скорости горения) на 0,1. В свитке Smoke (дым), измените Smoke Buoyancy (дымовая плавучесть) на 0. В свитке Temperature (температура), измените Temperature Buoyancy (температурная плавучесть) на 2:
Теперь перейдём на вкладку rend (Rendering).
В свитке Fire установите значение Color на 1,25. Затем щелкните правой кнопкой мыши по образцу Color и выберите Key Mode:
Переход на режим Key Mode, позволит Вам редактировать цвет пламени путём добавления ключей c выбранной Вами цветовой составляющей.
Сейчас мы этим и займёмся.
Кликните по цветовой палитре. Откроется диалог Fire Gradient. Так как пламя свечи варьируется от оранжевого цвета к желтому, а дальше к синему и к черному (черный в данном случае означает - прозрачный), нашей целью будет выстроить подобный переход цвета. При помощи добавления ключей создайте цветовой градиент приблизительно похожий на тот, что Вы видите на рисунке. Точного совпадения не требуется:
После того, как градиент будет построен, закройте окно Fire Gradient.
Поскольку есть привычка читать всё написанное слева направо, и подобная практика распространяется в том числе и на рисунки, то поясню, как следует понимать созданный градиент. Здесь следует читать всё с точностью до наоборот. Т.е. пламя свечи будет иметь голубоватый оттенок внизу, поднимаясь выше оно начнёт приобретать желтоватый оттенок, а самый верх пламени будет оранжевый.
Далее в свитке Fire установите Opacity (непрозрачность огня) на 2,0.
В свитке Smoke, установите значение цвета Ambient Color (цвет окружающей среды) на темно-серый RGB=30,30,30) и Opacity (непрозрачность) на 1. Окончательные настройки вкладки rend (Rendering) приведены на рисунке:
Теперь всё готово для запуска имитации.
В окне диалога FumeFX 5.0.1 Com нажмите на кнопку Start Default Simulation:
Начнется процесс просчёта и Вы увидите окно Simulation Info:
После окончания просчета визуализируем сцену на 100-м кадре. Получим следующее изображение:
Наверное, Вы обратили внимание, что после просчёта в сцене ничего не изменилось. Это связано с тем, что Вы не включили предварительный показ в окне просмотра. На самом деле данные присутствуют, просто нужно сделать их видимыми.
Выделите габаритный контейнер, затем перейдите на вкладку Modify, прокрутите свиток с параметрами чуть ниже и установите галочки возле параметров Fire и Smoke:
Теперь в окнах проекции можно наблюдать расположение вокселей огня и дыма. Подвигайте слайдер времени на шкале анимации. Вы увидите процесс возгорания пламени и выделения дыма.
Если отключить воксели дыма, то можно наблюдать схематическое отображение пламени свечи. Обратите внимание, что оно соответствует созданному ранее градиенту:
В заключении взгляните на видео пламени свечи. Здесь я только увеличил время анимации, что бы оно составляло не 100, а 500 кадров, заменил фон на более светлый, что бы дым от свечи был лучше виден и изменил размер кадра до 1280х720:
Попробуем имитировать солнечный свет, проникающий в комнату сквозь окно. Смоделируйте сцену в виде комнаты с окном — в качестве комнаты подойдет куб с удаленными передними гранями, а окно быстрее всего собрать из оконных примитивов (Create=> Geometry=> Windows) — рис. 59. Настройте нацеленную камеру и установите Omni-источник для создания общего освещения сцены (рис. 60). Идущий из окна солнечный свет имитируйте посредством источника света типа TargetDirectional (рис. 61). Настройте данный источник так, чтобы размеры светового потока соответствовали размеру окна. Для этого нужно вручную подобрать значение параметра Hotspot/Beam, изменить форму сечения светового потока на прямоугольную (Rectangle) и отрегулировать соотношение сторон светового прямоугольника параметром Aspect. Мишень источника разместите в середине окна прямо на стекле (рис. 62). Полученная в итоге сцена показана на рис. 63.
Рис. 59. Начальный вид сцены
Рис. 60. Появление камеры и Omni -источника
Рис. 61. Создание источника света TargetDirectional
Рис. 62. Положение мишени источника TargetDirectional
Рис. 63. Вид сцены после настройки источников света
Назначьте сцене эффект объемного света, а затем установите источник TargetDirectional в качестве светового источника для данного эффекта (рис. 64). Отрегулируйте параметры эффекта в соответствии с рис. 65, изменив основной цвет лучей (FogColor), уменьшив плотность светового потока (Density), включив флажки UseAttenuationColor и Exponential, а в области Filtershadows (Фильтровка Теней) выберите вариант High (Высокая). Для неоднородности воздушной среды установите турбулентный тип разброса шума, настройте порог разброса (NoiseThreshold) и определите размер шумовых включений ( Size). В результате попадающий в комнату через окно свет станет действительно напоминать солнечные лучи (рис. 66).
Рис. 64. Результат назначения эффекта VolumeLight с настройками по умолчанию
Рис. 65. Настройка параметров эффекта VolumeLight
Рис. 66. Солнечные лучи, проходящие сквозь стекло (в основе один источник)
Рис. 67. Свиток Atmosphere с тремя эффектами объемного света
Рис. 68. Солнечные лучи, проходящие сквозь стекло
Fire Effect
FireEffect позволяет имитировать эффект горения, а потому используется для создания пламени, взрывов, шаровых молний и дыма. Область распространения эффекта всегда ограничена гизмо.
Характер огня зависит от настройки параметров эффекта, регулируемых в свитке FireEffectParameters (рис. 69). Данный свиток представлен шестью разделами: Gizmos, Colors, Shape, Characteristics, Motion и Explossion. Первая группа позволяет настроить гизмо. Во второй устанавливаются цвета: InnerColor — внутренний цвет, OuterColor — внешний цвет и SmokeColor — цвет дыма. В области Shape можно отрегулировать форму огня:
- FlameType (Тип пламени) — бывает двух типов: Tendrill (Язык) и Fireball (Огненный шар), первый вариант используется для создания пламени костра, свечи и т.п., второй — для шаровых молний и метеоров;
- Stretch (Вытягивание) — позволяет управлять высотой пламени, при увеличении значения данного параметра пламя становится более ровным и высоким;
- Regularity (Регулярность) — обеспечивает нужный уровень однородности пламени.
В области Characteristics задается размер языков пламени FlameSize, детализация их прорисовки FlameDetail, плотность Density и образец Samples. В группе Motion регулируются настройки самого процесса горения (что важно при анимации) — данным процессом управляют параметры Phase и Drift, регулирующие фазу смешения и скорость разрастания огня соответственно. А в группе Explosion, которая включается при необходимости, определяются параметры взрыва: Smoke — задает появление дыма, Fury — интенсивность взрыва, Setup Explossion — устанавливает начало и конец взрыва.
Рис. 69. Свиток Fire Effect Parameters
Вернитесь к рабочей сцене, удалите созданный ранее эффект объемного света, выделив его в списке эффектов и щелкнув на кнопке Delete. Создайте эффект FireEffect и проведите рендеринг — никакого огня не появится, так как данный эффект работает лишь при указании гизмо. Поэтому перейдите на панель Create=>Helpers, выберите на ней уровень AtmosphericApparatus и создайте сферический гизмо SphereGizmo. Выделите чайник, активируйте панель Modify и отключите изображение крышки чайника, удалив флажок Lid. Разместите гизмо внутри чайника и слегка приподнимите (будем считать, что чайник у нас играет роль резервуара с маслом), при необходимости подкорректируйте его размер (радиус гизмо должен быть примерно равен предполагаемому радиусу пламени) — рис. 70. В области FireEffectParameters окна EnvironmentandEffects щелкните на кнопке PickGismo (Указать гизмо) и укажите созданный вспомогательный объект на любом из видовых экранов. Визуализируйте сцену — внутри чайника появится пламя (рис. 71).
Рис. 70. Размещение объекта SphereGizmo
Рис. 71. Вид сцены с пламенем
Увеличьте размер языков пламени (FlameSize) до 5, а их плотность (Density) — до 50. В результате языки пламени станут короче и заметно ярче, а пламя будет напоминать шаровую молнию (рис. 72 и 73). Уменьшите значение параметра Density до 10, сделайте FlameDetail равным 10, Samples — 25, а для FlameType установите вариант Tendrill — получившийся огонь будет напоминать пламя костра (рис. 74 и 75).
Рис. 72. Настройка параметров эффекта Fire Effect
Рис. 73. Результат первой корректировки языков пламени
Рис. 74. Настройка параметров эффекта Fire Effect
Рис. 75. Результат второй корректировки языков пламени
А теперь попробуем анимировать созданный огонь. Включите режим автоматического создания ключей, щелкнув на кнопке ToggleAutoKeyMode, перетащите ползунок временной шкалы на последний кадр и в области FireEffectParameters окна EnvironmentandEffects установите для параметра Drift (Дрейв), определяющего скорость разрастания огня, значение 200. Отключите режим автоматического создания ключей. Просмотрите анимацию в окне Perspective, щелкнув на кнопке Play Animation, — пока никакого огня нет и в помине, что вполне понятно, так как атмосферные эффекты в окнах проекций не отображаются, но значение измененного параметра исправно меняется. Создадим AVI-файл. Откройте окно настройки параметров визуализации RenderScene, применив команду Rendering=>Render, и перейдите на вкладку CommonParameters. В группе параметров TimeOutput (Временной интервал) активизируйте переключатель ActiveTimeSegment (Активный сегмент времени). В группе RenderOutput (Вывод визуализации) щелкните на кнопке Files (Файлы) и укажите имя файла, формат расширения (AVI) и формат сжатия (рис. 76), а затем щелкните на кнопке Render, что приведет к формированию AVI-файла в указанной папке. Запустите созданный файл и просмотрите его в окне встроенного проигрывателя (рис. 77).
Рис. 76. Настройка параметров сохранения анимации
Рис. 77. Демонстрация анимации в окне Windows-проигрывателя
Горящий запальный шнур
Воспользуемся эффектом горения для создания анимации горения запального шнура. Смоделируйте сцену из трех объектов: криволинейного сплайна, очень длинного цилиндра с малым радиусом и вспомогательного объекта типа AtmosphericApparatus — SphereGizmo (рис. 78). Сплайн и цилиндр потребуются для создания шнура — сплайн определит его форму, а цилиндр придаст нужную толщину. Объект SphereGizmo нужен для получения эффекта горения — с его помощью мы получим огонек на горящем конце шнура.
Рис. 78. Исходная сцена
Нужно придать запальному шнуру форму созданного сплайна. Для этого вначале примените к цилиндру модификатор деформации по траектории (команда Modifiers=>Animation=>PathDeform (WSM) — Модификаторы=>Анимация=>Деформация по траектории (WSM)). В свитке Parameters модификатора щелкните на кнопке PickPath (Указать путь) и выберите в одном из окон проекций сплайн — цилиндр примет форму сплайна. Затем щелкните на кнопке MovetoPath (Передвинуть на путь) для того, чтобы цилиндр занял на сплайне правильное положение, и на панели Modify отрегулируйте длину цилиндра так, чтобы она совпала с длиной сплайна (рис. 79). Назначьте тот же самый модификатор объекту SphereGizmo, так как по мере горения шнура огонек должен по нему передвигаться (рис. 80). Инструментом Move and Selection переместите сферический гизмо по оси Z так, чтобы контейнер оказался в самом конце запального шнура (рис. 81).
Рис. 79. Изменение длины цилиндра
Рис. 80. Назначение модификатора PathDeform (WSM) объекту SphereGizmo
Рис. 81. Перемещение объекта SphereGizmo
Включите режим создания автоматической генерации ключей анимации, перетащите ползунок временной шкалы на последний кадр, выделите цилиндр, переключитесь на панели Modify в режим его редактирования и уменьшите значение его высоты (Height) до нуля (рис. 82). Выделите объект SphereGizmo и переместите его по оси Z на противоположный конец шнура (рис. 83). Выйдите из режима создания анимации, щелкнув на кнопке ToggleAutoKeyMode. Проиграйте анимацию в окне Perspective, щелкнув на кнопке PlayAnimation, — длина шнура будет постепенно уменьшаться, при этом сферический гизмо в результате перемещения всегда будет находиться на горящем конце шнура (рис. 84). Назначьте сцене эффект FireEffect и укажите сферический гизмо в качестве гизмо эффекта. Увеличьте плотность огня (Density) до 70. Создайте AVI-файл, применив команду Rendering=>Render, — на вкладке CommonParameters активизируйте переключатель ActiveTimeSegment, щелкните на кнопке Files, укажите имя файла с расширением, а затем щелкните на кнопке Render. По окончании рендеринга запустите созданный файл и просмотрите в окне встроенного проигрывателя (рис. 85).
Огонь, огонь, огонь… Ничто не удовлетворит так душу 3d-шника, как прекрасно выглядящее пламя. Это первая часть урока по созданию бушующего пламени. В этом уроке Я покажу Вам как сделать материал огня.
1. Откройте редактор материалов, нажав M на клавиатуре.
2. Выберите неиспользуемый слот. Нажмите на кнопку Sample Type и выберите форму куба. Кубическая форма позволяет легче рассмотреть как будет выглядеть огонь в визуализированной сцене.
В свитке Основных параметров шейдера ( Shader Basic Prameters) выберите шейдер Blinn, установите флажок Карты поверхности ( Face Map) .
3. Уменьшите Уровень отражения ( Specular Level) и размытость ( Glossiness) до 0.
4. Откройте слот диффузии, нажмите кнопку Standard и выберите Gradient . Ваш куб станет выглядеть как переход от белого к черному с верха вниз. Нужно изменить цвета.
5. Выбираете каждый цвет сверху вниз и устанавливаете для него цвета соответственно красный, оранжевый и желтый. Устанавливаем тип градиента на Радиальный ( Radial) значение шума может быть увеличено до 1, размер до 15. Число размера может быть изменено позднее и настроено для лучшего для лучшего отображения сцены. Выберите тип шума фрактальный ( Fractal) .
6. Вернемся к основному материалу и скопируем карту из слота диффузии в слот прозрачности ( Opacity) .
7. Выделите материал прозрачности и измените три цвета на черный, серый и белый. Нажмите на кнопку Gradient и измените ее на Маску ( Mask) . Сохраните старую карту как подматериал.
8.Можете поиграть с настройками карты Gradient из карты маски, изменив установки шума для лучшего качества огня.
Материал огня создан. Следующий шаг – применение его.
Часть 2 Анимация огня.
Продолжим там где закончили урок «Материал огня». Наиболее интересная часть – создание материала, который может быть использован для создания иллюзии огня, и при этом он управляемый. Если вам хочется иметь огненный шар и огонь, стекающий с ребер, это возможно. Если Вам нравится огонь, проходящий через трубу или с силой ударяющийся о стенуи затем отскакивающий это тоже возможно. На материал, примененный к Массиву частиц (PArray) может воздействовать силы соответствующие любому пространственному исказителю и т.о. могут изгибаться в вашей сцене.
Если Вы повторили предыдущую часть урока (Материал огня) тогда Вы имеете файл, содержащий материал огня. Вы можете подумать, что возникла проблема: «как использовать материал в другом проекте не повторяя всего заново?» Это важный вопрос и мы ответим на него в следующей секции.
1. Откройте файл, который Вы создали в предыдущем уроке.
2. Нажмите M на клавиатуре для перехода в Редактор материалов.
3. Выберите материал огня и нажмите кнопку Поместить в библиотеку ( Put To Library) . Вас спросят ввести имя, например "Fire Material" (материал огня).
4. Если Вы захотите использовать этот материал в любом другом проекте, нажмите кнопку Взять материал ( Get Material) . Отметьте флажок Библиотеки материалов ( Mtl Library) уже настроенные материалы.
5. Свиток настроек системы частиц Массив частиц ( PArray ) довольно сложный, и Вы можете захотеть поиграть с некоторыми установками не упомянутыми здесь. Однако далее будет упомянуто то, что необходимо для получения более реалистичного огня.
7. Нарисуйте в окне массив, представляемый боксом с тремя пирамидами. Этот бокс только указатель места заполнения. На самом деле он не делает ничего и сам не может быть визуализирован. Он просто говорит, что PArray существует в сцене.
8. Для активации PArray перейдите в панель модификации.
9. В свитке Основных параметров ( BASIC PARAMETERS):
Автор об этом ни слова не говорит, но понятно, что нужно создать сферу, и назначить ему материал огня.
10. В свитке Генерации частиц ( PARTICLE GENERATION):
Устанавливаете диапазон (rate) ниже, если вы имеете большой размер частиц. Приведенный пример имеет диапазон 3, а размер каждой частицы 12.
Скорость ( Speed) уменьшите почти до нуля. Ветер может быть добавлен позднее для управления скоростью и направлением.
Синхронизация частиц ( Particle Timing) изменяется для установки начала и окончания огня.
Время жизни частиц (Life) по умолчанию 30 чересчур велико. Установите его, например на 12.
В области Размера частиц ( Particle Size) установки Роста (Grow For) и Затухания (Fade For) очень важны. Огонь имеет причудливое затухание. Сделаем очень короткое время, такое как 2 или 3 для каждого, что создаст более реалистичный эффект.
11. В свитке Типа частиц ( PARTICLE TYPE):
Используем стандартные частицы ( Standard Particles) и Грани (Facing) . Область Взять материал из ( Get Material From) оставим по умолчанию. Материал огня перетащим из редактора материалов на иконку PArray в окне просмотра.
12. В свитке Поворотов и соударений ( ROTATION and COLLISION)
Этот последний свиток тоже очень важный т.к. легкое вращение создаст немного движения и мерцания в огне. Установим время вращения ( spin time) очень коротким - 1.
Управление осями поворота ( Spin Axis Controls) выберем для одной оси – это позволит материалу поворачиваться к камере или визуализируемому виду.
13. Хотя Вы уже способны увидеть ваш огонь создаваемый вокруг объекта, точки излучения частиц возможно сделать случайными. Следующая секция поможет вам управлять частицами.
14. Ветер ( Wind Spacewarp) Он может быть использован для управления направлением и движением частиц. Поместите его под частицы, и он будет толкать их вверх, придавая вид языков пламени. Будьте осторожны. Слишком большая сила разорвет эти языки. Для решения проблемы может помочь увеличение размера и числа частиц.
15. Гравитация ( Gravity Spacewarp) Она может быть использована для создания эффекта «стекания». Огонь может быть в котле или трубе, а сила сливает его на пол. Это может быть полезно для имитации расплавленного камня или горящего металла.
16. Сдерживание ( Containment) Частицы стремятся пройти через большинство объектов, так что необходимо защищать их.
Для завершения используйте UOmniFlect . Это универсальный отражатель , предоставляющий больше опций, чем оригинальный UDeflector. Этот пространственный исказитель позволяет Вам использовать другой объект как отражатель частиц. Он может быть статическим, анимированным, или даже с примененным модификатором искажения (morphing) или других трансформаций во времени. (Почитайте в справочнике по 3DSMax).
Читайте также: