Системы частиц (particle systems)
Для придания реализма моделируемым сценам, помимо добавления атмосферных эффектов, нередко прибегают к внедрению в них множества очень мелких однотипных объектов, количество и вид которых изменяются с течением времени. Такие объекты принято называть системами частиц, и они незаменимы при моделировании струй дождя, брызг фонтана и хлопьев снега, искр огня, фейерверка и салюта, воздушных пузырьков и пыли, звездного неба и летящей стаи птиц и т.п. Именно с данным типом объектов мы и познакомимся в настоящем уроке.
Теоретические аспекты
Системы частиц (Particle Systems) — это совокупность управляемых с помощью параметров малоразмерных объектов, количество и вид которых различны в каждом кадре анимации. В 3D Studio MAX предусмотрено семь видов систем частиц:
| · Spray (Брызги) и Super Spray (Супербрызги) — обеспечивают эф-фект водяных брызг;
· Snow (Снег) и Blizzard (Метель) — создают эффект падающего сне-га и даже настоящей метели;
· PCloud (Облако час-тиц), РАrrау (Массив частиц) и PF Source (Источник Particle Flow) — предназначе-ны для моделирования широкого спектра эффектов.
|

За создание систем частиц отвечает категория ParticleSystems (Системы частиц) панели Create (Создать), при выборе которой становятся доступными все типы систем частиц.
| Технология их создания напоминает создание других объектов геометрии. Например, при формировании систем Spray, Snow, Blizzard и Super Spray достаточно просто выбрать тип системы частиц и перетащить мышь при нажатой левой кнопке по диагонали, а затем на панели Modify откорректировать параметры системы объектов. При создании любого типа частиц создается генерирующий их объект — эмиттер. Он определяет площадь, с которой будут падать частицы, и направление их перемещения (задается направлением вектора, выходящим из центра эмиттера). Эмиттер не визуализируется и в самом простом случае является двумерным. В окнах проекций он отображается в виде прямоугольника. Частицы, в отличие от эмиттера, визуализируются, хотя в нулевом кадре их не видно, но они прекрасно отображаются в любом кадре, отличном от нулевого.
|


Для большей части систем частиц эмиттер не только генерирует частицы, но и сам их испускает. Исключение составляют системы ParticleArray и ParticleCloud, в которых испускание частиц производится с другого (предварительно выбранного пользователем) объекта сцены, а за эмиттером сохраняется функция генерирования частиц в соответствии с указанными параметрами.
Spray
Система частиц Spray (Брызги) позволяет генерировать падающие частицы, сохраняющие при перемещении постоянную ориентацию и направление, и предназначена для имитации эффекта падающей воды: водяных брызг, дождевых струй и т.п.
Для примера создайте систему частиц типа Spray (Брызги). Выберите Create => Geometry => ParticleSystems (в открывающемся списке, где по умолчанию выбрано Standart Primitivs), щелкните на кнопке Spray и в окне проекции Top нарисуйте прямоугольный эмиттер — никаких частиц при этом видно не будет, но это лишь потому, что кадр нулевой. Нажмите на панели анимации кнопку Play, и частицы тут же появятся, причем их количество и положение в каждом кадре будет меняться.

Вид проекции Top Вид проекций со Spray-частицами в одном из
со Spray-эмиттером промежуточных кадров
в нулевом кадре
При необходимости несложно отрегулировать положение частиц, их количество и характер движения через свитки параметров на панели Modify. Так, в области Particles можно определить следующие параметры:
- ViewportCount — максимальное число частиц, отображаемых в окне проекций в любой момент времени;
- RenderCount — максимальное число частиц, видимых в каждом отдельном кадре итоговой визуализации; как правило, для окончательной визуализации сцены следует задавать достаточно большую величину этого параметра — порядка 1000;
- DropSize — размер частиц;
- Speed — средняя начальная скорость каждой частицы в момент отрыва от источника, в дальнейшем, если на частицы не действует какая-либо из объемных деформаций (например, гравитация), то они движутся с этой же скоростью, в противном случае скорость меняется в зависимости от вида и настроек гравитации;
- Variation — разброс значений начальных скоростей и направлений распространения частиц, от значения которого зависит область их распространения — чем больше значение данного параметра, тем шире область распространения.
Кроме того, здесь же выбирается вариант отображения частиц в окнах проекций — Drops (Лучи), Dots (Точки) и Ticks (Крестики).
Вид частиц при рендеринге задается в области Render, где предусмотрено два варианта отображения:
| · Tetrahedron — частицы визуализируются в виде вытянутых тетраэдров, длина которых равна значению параметра DropSize, напоминая дождевые капли;
· Facing — частицы визуализируются в виде квадратных полигонов, размеры которых совпадают с размерами частицы; форму данных полигонов можно изменять посредством наложения материалов на основе текстурных карт с масками непрозрачности.
В области Timing регулируется время жизни частиц:
· Start — номер кадра, в котором начнется испускание частиц; по умолчанию данный параметр равен 0, в результате чего в 0-м кадре частицы не видны; если же требуется, чтобы все частицы, задаваемые полями счетчиков, присутствовали уже в 0-м кадре, то в данном поле устанавливается отрицательное значение;
· Life — продолжительность жизни частицы в кадрах; чем больше значение данного параметра, тем дольше виден след, оставляемый частицами; если Life = 0, то частицы следа за собой не оставляют;
· BirthRate — число новых частиц, появляющихся в каж-дом следующем кадре анимации. Если значение данного параметра превышает максимально допустимое значение — MaxSustainableRate,вычисляемое как частное параметров RenderCount и Life, то генерация частиц производится прерывисто. Для получения устойчивого потока частиц значение BirthRate должно быть меньше или равно MaxSustainableRate. Данный параметр можно изменять только при сброшенном флажке Constant.
В области Emitter определяются размеры эмиттера — его ширина (Width) и длина (Length), здесь же можно отказаться от отображения эмиттера в окнах проекций, для чего требуется включить опцию Hide (скрыть).
|

Чтобы разобраться с особенностями настройки названных параметров, активируйте созданную систему Spray-частиц, включите режим анимации с автоматическим созданием ключей, переключитесь на последний кадр и на панели Modify увеличьте размер частиц (DropSize) до 5, а скорость их движения (Speed) до 20. Отключите режим автоматического создания колючей, вернитесь в 0-й кадр и проиграйте анимацию в окне проекции Perspective и увидите, что при увеличении номера кадра размер частиц увеличивается, равно как и скорость их падения.

Создание ключей анимации для параметров DropSize и Speed

Вид частиц в 20-м (слева) и 100-м кадрах
| Установите вариант ото-бражения частиц в окнах проекций в виде точек (Dots) — обратите внима-ние, что теперь изменение размеров частиц не будет фиксироваться в окнах проекций. Уменьшите вре-мя их жизни (Life) до пяти кадров и проиграйте ани-мацию, где сразу станет заметно, что уменьшилось не только время, в течение которого виден след от частиц, но и область их распространения.
|

| Верните первоначаль-ное значение параметра Life. Отключите флажок Constant, а затем уве-личьте значение пара-метра BirthRate до 10. Это приведет к порции-онной генерации час-тиц, где на некоторых кадрах на экране одно-временно будут нахо-диться не одно, а сразу 2 облака частиц. Вклю-чите флажок Constant — частицы вновь станут испускаться эмиттером равномерно.
|

Вид частиц в 5-м (сверху) и 100-м кадрах — в обоих случаях четко видна граница максимального распространения частиц
Удалите для параметров DropSize и Speed созданные ранее ключи анимации, увеличьте размер частиц до 4 и проведите рендеринг для одного из промежуточных кадров анимации. Обратите внимание, что все частицы движутся одинаково. Увеличьте разброс значений начальных скоростей и направлений частиц (Variation) до 3 — частицы станут разлетаться не в одном, а сразу в нескольких направлениях (рис. 12). Создайте AVI-файл — примените команду Rendering => Render, на вкладке CommonParameters активизируйте переключатель ActiveTimeSegment (Активный сегмент времени), укажите имя файла и щелкните на кнопке Render. Просмотрите созданную анимацию в окне встроенного проигрывателя — частицы будут хаотично перемещаться, но количество их окажется невелико. Поэтому увеличьте значение параметра RenderCount примерно до 1000-1500 и вновь проведите визуализацию — поток частиц станет гораздо мощнее (рис. 13).

Вид сцены при одинаковом Вид сцены при хаотичном движении частиц и
движении частиц соответствующие ему настройки базовых параметров
| Демонстрация анимации в окне Windows-проигрывателя и соответствующие настройки базовых параметров анимации частиц
| |
Огни фейерверка
Попробуем превратить разлетающиеся частицы в настоящий фейерверк — для этого достаточно подобрать оптимальный для данного случая разброс частиц (мы остановились на 6) и назначить частицам светящийся и отливающий разными цветами материал.
| Поскольку речь идет о получении разноцветных огней, то в качестве материала может быть использована специально созданная, например в генераторе фрактальной графики, и установленная на канале Diffuse разноцветная Bitmap-текстура, многослойный Composite-материал (в котором сквозь один материал будут просвечивать другие) либо материал Multi/Sub-Object. Мы остановимся на последнем варианте, так как он позволяет назначать материал не всем частицам сразу, а каждой следующей частице отдельно — очередная частица принимает материал на основе собственного номера (0-я получает 1-й материал, 1-я — 2-й и т.д.).
Создайте материал Multi/Sub-Object и ограничьте число входящих в него подматериалов, например, пятью (кнопка Set Number). Последовательно назначьте в качестве подматериалов стандартные материалы с разными цветами на канале Diffuse и большим значением Specular Level для получения эффекта свечения. Один из кадров полученной в результате анимации представлен на рисунке ниже.
|


Разноцветное конфетти
| Теперь на основе Spray-частиц создадим разно-цветное конфетти. Сформи-руйте систему частиц с большим по размеру эмит-тером, разместите эмиттер в верхней части окна проек-ции Perspective, а затем на панели Modify в области Render включите вариант Facing. Проведите ренде-ринг — частицы станут квадратными, причем раз-мер квадратов будет напря-мую зависеть от значения DropSize.
Как правило, вариант ото-бражения Facing использу-ется не напрямую (когда частицы представлены обычными квадратами), а в сочетании с полупрозрач-ным материалом, имеющим маску, — тогда можно при-дать частицам произволь-ную форму. Поскольку мы создаем конфетти, то нам потребуется маска в виде обычного белого круга на черном фоне, которую мож-но создать в любом раст-ровом редакторе.
|


|
Материал конфетти: Создайте новый материал типа Multi/Sub-Object с тремя подматериалами. В каждом из подматериалов нужно установить цветв Diffuse, а в Opacity поставить растровую карту с изображением белого круга на черном фоне
|

Ливневый дождь
Попробуем смоделировать анимацию ливневого дождя. Создайте систему Spray-частиц с большим эмиттером и разместите его в верхней части окна проекции Left. Включите режим анимации с автоматическим созданием ключей, переключитесь на первый кадр и увеличьте размер частиц (DropSize) до 15, перейдите на последний кадр и установите размер частиц равным 17. Отключите режим автоматического создания ключей, вернитесь в 0-й кадр, проиграйте анимацию в окне проекции Perspective и увидите, что при увеличении номера кадра размер частиц возрастает.
Увеличьте скорость движения частиц до 12, а число их при визуализации (RenderCount) до 8-12 тыс. По окончании повер-ните эмиттер так, чтобы струи дождя стали падать немного наклонно.
Назначьте частицам матери-ал дождя — это может быть, например, полупрозрачный стандартный материал с блед-но-голубым цветом на канале Diffuse и большим значением Specular Level или материал Water из группы нестандарт-ных материалов Architectural.
Проведите рендеринг для всех кадров — на этот раз получен-ный поток частиц будет напо-минать струи постепенно уси-ливающегося дождя. Попробуй-те внедрить созданный дождь на подходящее фоновое изображение
.
|


Snow
Система Snow (Снег) позволяет создавать кружащиеся частицы, а потому подходит для имитации эффектов падающего снега, кружащихся листьев, конфетти и т.п. По принципу создания данная система очень похожа на систему частиц Spray, так как подавляющая часть ее параметров аналогична тем, что уже были рассмотрены. А среди отличающихся параметров в первую очередь следует назвать те, что управляют вращением:
- Tumble — коэффициент случайного поворота частиц, меняющийся в интервале от 0 до 1: при значении 0 частицы не вращаются; при значении 1 — вращение максимально;
- TumbleRate — скорость вращения частиц.
Кроме того, есть отличия в плане отображения частиц в окнах проекций и при рендеринге — в первом случае вместо типа Drops (Лучи) фигурирует тип Flakes (Снежинки), а во втором предусмотрены три варианта формы частиц: SixPoint (Шестиугольная), Triangle (Треугольная) и Facing (Прямоугольная).
| Для примера создайте систему частиц Snow и назначьте ей материал с бледно-голубым цветом на канале Diffuse и следующими параметрами: Specular Level — 100, Glossines — 0 и 50-про-центная непрозрачность. Проиграйте анимацию — частицы будут падать, но без вращения. Визуализируйте один из промежуточных кадров, чтобы оценить вид снежинок, а затем последовательно смените вариант SixPoint вначале на Triangle, а затем на Facing, каждый раз проводя рендеринг, по окончании вер-нитесь к варианту SixPoint. Увеличьте значение параметра Tumble до 1 для обеспечения интенсивного кружения частиц, а затем установите параметр TumbleRate равным 2,15 — частицы станут вращаться заметно быстрее. Поскольку скорость вращения теперь визуально оказалась больше скорости падения, то немного увеличьте и значение параметра Speed. Расширьте зону снего-пада, вдвое увеличив коэффициент разброса начальной скорости и направле-ний частиц (Variation).
|


Рис. 29. Настройка параметров частиц
Снегопад
| Попробуем превратить кру-жащиеся частицы в настоя-щий снегопад. Увеличьте размеры эмиттера, указав б о льшие значения ширины (Width) и длины (Length) в области Emitter, и перемес-тите эмиттер в верхнюю часть окна проекции. Затем увеличьте максимальное чис-ло частиц (как в окнах проек-ций, так и при визуализации — в данном случае были использованы значения 300 и 6000 соответственно и про-ведите рендеринг — сцена покроется снежинками. По-пробуйте внедрить сгенери-рованный снег на подхо-дящее фоновое изображение.
|


Если поставить в канал Opacity картинку со снежинкой на черном фонеЁ то вид снега будет такой:

Воспользуйтесь поиском по сайту: