He забудьте выключить режим wireframe, и вы увидите, что частицы, перед тем как исчезнуть, начинают растворяться в пространстве.

Чтобы отредактировать степень прозрачности частиц, снова нажмите правую кнопку мыши на поле OpacityPP.

На этот раз там появится самое длинное меню в мире, прорвавшись сквозь которое выберите Edit Ramp.

Вам потребуется некоторое время для того, что бы осознать, как текстура влияет на прозрачность (точнее, как она «лежит» на частицах, ведь у них нет ни поверхности, ни UV-координат), однако пытливые умы, используя метод пристального взгляда, быстро догадаются, что текстура типа Ramp «лежит» на времени жизни частиц. Более «молодые» частицы берут значение прозрачности с нижней части текстуры, а более «старые» - с верхней части.

Отредактируйте текстуру так, чтобы частицы с самого начала имели некоторую прозрачность (серый цвет внизу), а начинали исчезать после половины прожитого времени.жизни

Для взрослых. В данном случае возраст частиц неявным образом передается на V-координату текстуры Ramp. Можно использовать и любой другой атрибут частиц (для того, чтобы вычислять «забираемый» с текстуры цвет). Для этого при создании текстуры Ramp достаточно выбрать Option Box и там указать, какой атрибут будет управлять V-координатой. Там же можно задать и атрибут для U-координаты, а тип текстуры указать как UV-ramp.

Это, в общем-то, экзотика, и для таких случаев лучше пользоваться expression, но иногда удобно использовать позиции частиц как UV-координаты для текстуры, определяющей некоторые свойства частиц - например, массу.

Сохраните файл (smoke.та).

Отложим визуализацию никотиновых испарений до соответствующего раздела о хардверном рендеринге. А сейчас подведём некоторые итоги, основываясь на опыте от сделанного упражнения.

Время жизни и возраст частиц

Время жизни - ключевой атрибут и свойство частиц. Он позволяет задать динамику изменения свойств частиц индивидуально для каждой частицы. В отличие от общего системного времени, время жизни и возраст частицы (хранящийся в атрибуте age) определены для каждой частицы индивидуально и позволяют задать динамику изменения свойств каждой частицы независимо от других. Время жизни позволяет работать с постоянно «обновляющимися» потоками частиц и является совершенно незаменимым свойством при производстве различных «пиротехнических» эффектов.

Следует различать время жизни (lifespan) и возраст частиц (age). Время жизни - это атрибут, который можно редактировать и анимировать, влияя на продолжительность жизни частиц на экране. Возраст - это не редактируемый (read-only) атрибут, который содержит информацию о том, сколько времени прошло с момента рождения частицы. Как только значение атрибута age становится больше значения, определяемого lifespan, частица исчезает.

Массивные атрибуты (Per Particle Array Attributes)

При анимации прозрачности дыма или испускании наследующих цвет частиц, я уже упоминал о том, для частиц существуют индивидуальные атрибуты. Разберемся с этой концепцией поподробнее.

Если открыть Attribute Editor для частиц, то, как и для любого объекта в MAYA, он содержит атрибуты, определяющие свойства объекта целиком, ничего не говоря про свойства компонентов объекта. Однако совершенно очевидно, что для частиц должны задаваться характеристики, определяющие не только общие для всех частиц свойства (типа conserve), но параметры, уникальные для каждой частицы. Интуитивно понятно, что у каждой частицы есть своя позиция и скорость («И даже ускорение!», воскликнут особо пытливые умы, умудрившиеся закончить среднюю школу). Понятно и то, что эти характеристики частиц надо хранить в некоторых атрибутах, чтобы иметь возможность их контролировать. Также хорошо бы всегда иметь под рукой цвет, массу или прозрачность каждой частицы, чтобы работать с ними на индивидуальной основе. Ясно, что все эти свойства должны храниться в атрибутах, вопрос лишь в том, как устроены эти атрибуты. Можно предположить, что если объект типа particle содержит, например, десять тысяч частиц, то где-то должны находиться десять тысяч атрибутов, определяющих позиции, ещё десять тысяч, определяющих скорости, массу, цвет и т.д. Однако вместо того, чтобы плодить десятки тысяч атрибутов, для каждого индивидуального свойства частиц существует один (но очень большой) массивный атрибут, содержащий в себе все позиции или все скорости частиц в данном объекте. Говоря формально, для частиц определены атрибуты типа массив (array), содержащие наборы данных определенного типа. Например, атрибут mass представляет собой набор чисел типа float, характеризующий массы всех частиц. А атрибут velocity содержит набор векторов (то есть троек чисел), описывающих скорости всех частиц в данном объекте типа particle.


⇐ вернуться назад | | далее ⇒