Главная | Обратная связь | Поможем написать вашу работу!
МегаЛекции

Системы частиц (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 картинку со снежинкой на черном фонеЁ то вид снега будет такой:

Поделиться:





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



©2015 - 2024 megalektsii.ru Все авторские права принадлежат авторам лекционных материалов. Обратная связь с нами...