Замечание. Атрибут Depth sort отвечает за порядок визуализации спрайтов. Если он помечен , то есть его значение равно 1, то частицы визуализируются в соответствие с их расстоянием до камеры ( ближние позже, дальние -раньше). В противном случае визуализация осуществляется в соответствие с индивидуальными номерами частиц не зависимо от расположения камеры, а значит, в некоторых ракурсах дальние спрайты будут перекрывать ближние, что создает странный эффект «просвечивания» спрайтов друг сквозь друга.
Врезультате наших действий вы получили поле, «засеянное» черными квадратиками, теперь мы должны положить текстуру на наши спрайты.
Создаем новый материал lambert (по умолчанию он получит имя lambert2, так как материал lambert1 по умолчанию присутствует в любой сцене). На color, transparency и incadenscence «навешиваем» файловую текстуру - созданную нами последовательность картинок исходного дерева
После выбора имени файла (а это будет tree.0) в ноде filel не забудем отметить атрибут Use Image Sequence и Use Interactive Sequence Caching. Имеет смысл заменить стандартный экспрешен, ассоциируемый с атрибутом Image Number, на пару ключей (time=0 -> imageNumber=0) и (time=179-> imageNumber=179) - это поможет избежать неприятного сообщения, о том что Maya не может найти текстуру с номером больше 179.
В разделе Interactive Sequence Caching Options зададим 0 для Sequence Start и 179 для Sequence End. Присвоив созданный материал нашим спрайтам, мы наконец увидим нечто, похожее на лес:
камеры. Этот алгоритм, естественно будет зависеть от камеры и должен быть per-particle алгоритмом (взаимное расположение частиц и камеры естественно различно для разных частиц).
Создадим камеру - скорее всего по умолчанию она получит имя camera1. Добавим к particle-Shape1 Три дополнительных атрибута camX, camY и camZ типа float и передадим на них translate-трибуты вновь созданной камеры - теперь наши частицы легко смогут получать информацию о том, где находиться камера:
addAtr -In camX -keyable true -at double Iparticlell particleShapel;
addAtr -In camY -keyable true -at double Iparticlell particleShapel;
addAtr -In camZ -keyable true -at double Iparticlell particleShapel;
connectAtr -f cameral.tx particleShapel.camX;
connectAtr -f cameral.ty particleShapel.camY;
connectAtr -f cameral.tz particleShapel.camZ; Добавим нашей системе частиц per-particle атрибут spriteNumPP - именно он будет определять номер кадра текстуры, который будет показываться каждым спрайтом (в атрибут эдиторе для particleShapel в закладке Add Dynamic Attribute выбираем General, далее в открывшемся окне в закладке Particle ищем spriteNumPP).