stat
 
 
 
 
 
 
 
  TBS - Журнал Цифровое Видео    
Скидки
Разделы форума
Системы нелинейного
монтажа
Общие вопросы
Видеооборудование
Аудиооборудование
Светофильтры
Осветительное
оборудование
Барахолка
Поиск по архиву

Режим: "и" "или"
Избранное
Архив журнала
Цифровое Видео
#4 #5 #6
  #1 #2 #3
#4 #5 #6
  #1 #2 #3
#4 #5 #6
  #1 #2 #3
#4 #5 #6
  #1 #2 #3
#4 #5 #6
  #1 #2 #3

MAYA 2.0: слишком много для второй версии

Сергей Цыпцын

      15 июня 1999 г. - дата начала официальной продажи второй версии программы Alias|Wavefront MAYA. Мне довелось быть в это время в европейской штаб-квартире компании, в бельгийском офисе Alias|Wavefront, откуда осуществляется координация, техническая поддержка и обучение на территории стран Европы, Северной Африки и Ближнего Востока. Благодаря общению с сотрудниками службы поддержки и разработчиками я получил массу впечатлений о продукте в целом и новой версии в частности, которыми и хочу поделиться с читателями журнала. Заранее прошу прощения за хаотичность повествования, непереведенные термины и разговорный стиль.

Терминология

      Для начала определимся с терминологией. Каких только определений MAYA Complete, Unlimited и Fusion не встретишь на страницах весьма популярных изданий. Приведу лишь одно из моих любимых. В "Компьютерре" (№ 20'99) можно прочитать следующее: "MAYA Complete и MAYA Fusion - модули, отвечающие за импорт файлов из Adobe Illustrator (Complete) и импорт/экспорт широкого набора графических форматов (Fusion), в том числе на различные "железные" устройства". Конец глазам.
      Чтобы закрыть эту тему, напомним, что больше нет MAYA Base, F/X и Artisan, все эти модули вошли в MAYA Complete как в единый и неделимый продукт. Упоминания о них можно найти лишь в ссылках на версию 1.0 и в файлах лицензий. Завершает комплектацию MAYA Complete пакет MAYA Fusion Lite (в версии для NT) или A|W Composer Lite (в версии для IRIX). Это все, что входит в MAYA Complete. MAYA Fusion Lite - это облегченная версия полного пакета MAYA Fusion (цена в США - $5000). Сегодня MAYA Fusion представляет собой слегка модифицированную полную версию eyeon Digital Fusion Post 2.51b (поддержка 64-битного цвета, gamma display correction in loader/saver, Matador Cineon LUT и black point/white point, batch capture, EDL, tape control). MAYA Fusion призвана скомпенсировать наличие Alias|Wavefront Composer на платформе IRIX, где Composer Lite всегда входил в состав MAYA. Сейчас MAYA Fusion имеет стандартный параноидальный интерфейс Digital Fusion (мне, кстати, нравится), но с версии 2.1 будет иметь "омаенный" интерфейс с Marking Menu и прочими универсальными для MAYA деталями внешнего вида. Отлично работает напрямую с DPS Perception, позволяя в реальном времени читать PVD-файлы и просматривать отрендеренные непосредственно на Perception композиции неограниченной длины. Да, совсем забыл, в MAYA Complete также входит Invigorator Lite Edition - plug-in от компании Zaxwerks для импорта EPS-файлов в MAYA.
      Несколько слов о MAYA Unlimited. Так и хочется перевести "MAYA Беспредел" - вы бы видели, сколько дисков в этой поставке! В MAYA Unlimited целиком входит MAYA Complete плюс MAYA Fur, MAYA Cloth, MAYA Live, MAYA Advanced Modeling и две дополнительные лицензии на рендеринг. Так что сейчас существуют два и только два варианта поставки MAYA: Complete и Unlimited.

NT и IRIS

      Функциональность версии 2.0 на NT и IRIX идентична, за исключением распределенного редеринга, недоступного на NT. Исследуя этот вопрос для новой версии, я посадил картридж, честно распечатав около 400 страниц информации об обновлениях и улучшениях. Первое улучшение касается самой документации, ее стало больше и она стала гораздо толковее, одна часть по рендерингу чего стоит! Документация доделывалась и переделывалась в последний момент и была закончена в начале июня. По этой причине распространенные в России MAYA 2.0 RC вкупе в Beta1, Beta2 и PreCG release содержат сильно урезанную незаконченную документацию. Привожу внешний вид главной страницы помощи из официальной версии (рис. 1). По мнению разработчиков, количество нововведений слишком велико для второй версии, что делает пакет сложным для поддержки, но пользователей это должно только радовать. Число багов, правда, не уменьшилось, старые исправлены, новые написаны, но стабильность пакета остается фантастически высокой для такого монстра, тем более на NT, тем более в области 3D. Кстати, о багах. Если вы используете Render View для рендеринга некоторых сцен, следите, чтобы Zoom окна был равен 1:1, уменьшение размеров окна Render View приводит к замедлению рендеринга в 1,5-4 раза.


Рис. 1 Новая on-line-документация

Рис. 2 Подстановка частиц

Рис. 3 Объект имеет свойство сплайнов и
полигонов

Рис. 4 Редактирование поверхности: реальная
и идеальная ситуации

Фундаментальные изменения

      Фундаментальные изменения, с моей точки зрения, - это поддержка многопроцессорных систем, IPR, Particle instancer, subdivision surfaces, Artisan для полигонов, Fur для полигонов.
      Поддержка многопроцессорных систем. Процесс batch-рендеринга может быть запущен на всех доступных в вашей станции процессорах. Более того, вы можете точно задавать число процессоров, используемых под рендеринг. По моим тестам, сцена, просчитанная на одном процессоре за 4:22, на двух просчиталась за 2:25, что впечатляет. К сожалению, рендеринг в RenderView, равно как и основной интерфейс MAYA, пока исполняется на одном процессоре. На одном процессоре считаются Shading Maps и IPR, но они подлежат переводу на два процессора в следующей версии.
      IPR. Технология Interactive Photorealistic Render полностью перенесена в состав MAYA 2.0 для обеих платформ. До сих пор IPR входила в состав только пакета TDI Explore, который был доступен лишь на платформе IRIX и не обновлялся с версии 4.3.х после выхода MAYA 1.0. Суть технологии такова. В процессе просчета окончательного растрового изображения строится внутреннее соответствие между каждым пикселем просчитанного кадра и всеми параметрами сцены (геометрией, источниками света, материалами и т. д.), которые влияют на формирование цвета этого пикселя. После изменения одного из параметров (например, местоположения источника света) в окне IPR автоматически пересчитываются лишь пиксели, попадающие под влияние этого источника света, причем пересчет осуществляется с потрясающей скоростью, ибо заново не проводятся разбиение сцены на полигоны, отсечение невидимых областей и т. д. Становится возможным следующее: вы создаете новый материал любой сложности и мышкой перетаскиваете его из окна HyperShade в окошко IPR, где находится отрендеренное изображение, и бросаете его на любую поверхность интерьера (да-да прямо на bitmap), после чего эта поверхность в кадре практически мгновенно пересчитывается. Если под курсором в кадре оказалось несколько объектов, система спросит вас, на какой именно геометрический объект бросить новый материал, так как всегда доступна информация о происхождении любого пикселя. Естественно, если изменилась сама геометрия или положение камеры в сцене, IPR-кадр должен быть пересчитан. IPR-файл, образующийся при просчете в D-1, может достигать 40-60 Мбайт для плотно набитых сцен. Теперь также можно назначать материалы объектам путем перетаскивания их в любое окно моделирования и бросания их на геометрию даже без предварительного выделения последней. Все это делает чрезвычайно удобным и быстрым процесс отладки окончательного изображения, особенно при работе с трехмерными и процедурными фрактальными текстурами, когда очень трудно предсказать результат изменения параметров текстуры.
      Particle instancer. Наконец-то в MAYA встроена технология подстановки частиц объектами. Любой набор частиц (испускаемых или неподвижных) может быть заменен набором объектов, наследующих траекторию движения частиц (рис. 2). Объекты при этом могут иметь собственную анимацию и независимо деформироваться в процессе движения. Существуют три варианта подстановки. В первом случае все частицы заменяются одним объектом, с возможностью рандомизации анимации объекта при подстановке. Во втором - частицы заменяются на целый набор объектов или иерархию. В третьем - каждая частица может быть заменена на индивидуальный объект из построенного набора объектов, каждый из которых может иметь свою анимацию. Нельзя подставлять источники света вместо частиц, они просто не будут давать никакого эффекта на рендеринге.
Рис. 5. Уровень BaseMesh, level 0
Рис. 6. Следующий уровень Finer Mesh Display, level  1
Рис. 7. Следующий уровень Finer Mesh Display, level 2
Рис. 8. Более высокий уровень отображения контрольных точек требует определения региона

      Subdivision surfaces. Новая парадигма моделирования позволяет увеличивать детализацию моделируемых поверхностей лишь в тех участках, где это необходимо.
      Наверное, на этом стоит остановиться подробнее. Существуют различные реализации модели subdivision surfaces, в MAYA используется так называемая модель Катмулла-Кларка (см., например: Catmull E., Clark J. Recursively Generated B-Spline Surfaces On Arbitrary Topological Meshes/ Computer Aided Design, 1978, №10 (6), с. 350-355).
      Что же такое subdivision surface? Формально можно сказать, что это обобщение сплайновой поверхности, не ограниченное традиционным двумерным UV-маппингом и способное принимать произвольную топологическую форму, как любой полигональный объект. На рис. 3  можно заметить, что объект является гладким, как сплайновая поверхность, что контрольные вершины не лежат на объекте, как и для NURBS, а также что не все контрольные вершины имеют четыре соседние точки, что необходимо в случае сплайновых поверхностей. Таким образом, subdivision surfaces объединяют лучшие черты сплайновых и полигональных поверхностей. Тем не менее правильнее рассматривать их в качестве расширенных сплайнов, чем в качестве расширенных полигонов, поскольку изменения поверхности при смещении контрольных точек происходят так же, как при работе со сплайнами. Основным преимуществом перед сплайновыми моделями является способность subdivision surface принимать произвольную топологию, не ограниченную сплайновой прямоугольной UV-параметризацией, например форму руки или осьминога, оставаясь единой поверхностью. Для тех, кому интересна математическая подоплека столь выдающихся способностей пакета, приведу аналогию со сглаживанием полигонов. Представьте произвольный полигональный объект. К нему можно применить стандартную операцию сглаживания (Smooth). Полученный объект можно сгладить еще раз и в принципе повторять этот процесс сглаживания до бесконечности (в теории, естественно). Математический предел бесконечного количества сглаживаний является subdivision surface, которая к тому же почти везде будет кубической бисплайновой поверхностью, т. е. абсолютно гладкой, при этом имеющей произвольную топологию. Но это еще не все. Другая выдающаяся особенность subdivision surface - иерархическая структура. Одна из проблем при работе со сплайнами заключается в том, что при проработке мелких деталей на целой сплайновой поверхности (например, области носа или глаз на модели головы) приходится вставлять дополнительные изопармы, которые проходят через всю поверхность целиком, добавляя большое количество контрольных вершин в те области, где это совсем не требуется, и утяжеляя поверхность. На рис. 4 в верхнем ряду показан такой процесс и результирующая топология. В нижнем ряду представлена идеальная ситуация, позволяющая усложнять топологию только в тех областях, где это необходимо. (Кстати, одна из попыток решить эту проблему предпринята компанией Rodin, в виде разработки H-Spline-объектов, www.hspline.com.) Subdivision surface позволяет добавлять мелкие детали в любое место сколь угодно большой поверхности без вставки дополнительных вершин или изопарм - только за счет своей внутренней иерархической структуры. Это означает, что поверхность может быть отредактирована при помощи разных наборов контрольных вершин, которые являют собой представления всех контрольных точек с разной степенью подробности. Математически subdivision surface содержит бесконечное количество контрольных вершин, и мы можем проводить глобальное и локальное редактирование поверхности, пользуясь различными независимыми уровнями представления этих точек на экране.
      Самый первый и самый грубый набор видимых контрольных точек называется базовым уровнем (BaseMesh), или уровнем 0 (level 0; coarsest level). Следующие уровни (а их бесконечно много) могут быть показаны путем перехода на более подробный уровень отображения (Finer Mesh Display). Чем выше уровень, тем большее количество контрольных точек он содержит и тем более мелкие детали могут быть проработаны на нем. На рис. 5-7 представлены различные наборы контрольных вершин для одной и той же subdivision surface.
      Приведу еще одну аналогию специально для пользователей MAYA для понимания иерархической структуры. Представьте себе сплайновую плоскость 2 х 2. Перестроим ее, сохраняя историю моделирования (Rebuild Surface; 8 x 8; Keep Original is ON). Не изменяя оригинальную поверхность, мы получим две плоскости, одна из которых (перестроенная с более высоким разрешением) помнит форму своего оригинала. Если теперь изменять форму первоначальной поверхности (редактируя контрольные точки), то вторая поверхность одновременно будет перестраиваться, принимая идентичную форму. Рис. 9. Создание subdivision surface при построении Loft
      Так мы осуществляем глобальные изменения. Одновременно можно редактировать контрольные точки второй перестроенной и более подробной поверхности, внося мелкие детали, после чего снова изменять глобальную форму второй поверхности путем редактирования контрольных точек первой.
      Таким образом можно проводить "двухуровневое" (глобальное и локальное) редактирование второй поверхности, пользуясь двумя наборами контрольных точек с первого и со второго объектов, связанных историей перестраивания. Преимущество subdivision surface состоит в том, что эта функция уже содержит неограниченное количество перестроенных из самой себя поверхностей с любым разрешением. Следовательно, мы всегда можем переходить с уровня на уровень, работая с одной поверхностью, ничего не добавляя и не перестраивая. Конкретно в MAYA мы можем показать три первых уровня подробности контрольных вершин. Чтобы увеличивать детализацию представления, требуется определить регион на множестве контрольных вершин, на котором будут показываться дополнительные контрольные точки (см. рис. 8). С точки зрения моделирования технология subdivision surface выглядит, конечно, крайне привлекательно. Но пока эта технология может применяться только как средство детального моделирования и улучшения существующих сплайновых и полигональных моделей. Subdivision surfaces могут быть получены конвертированием сплайновых и полигональных объектов при помощи операции Create Subdiv или при построении новых поверхностей указанием создавать Subdiv (рис. 9). Редактировать такие поверхности можно, перемещая контрольные вершины и применяя операцию "притягивания" (Crease) поверхности к контрольным точкам и ребрам (рис. 10). Пока не поддерживаются напрямую анимация и деформация, а для рендеринга subdivision surface должна быть сконвертирована в полигоны. Обратно в NURBS конвертация невозможна. Это все пока, так как, насколько мне известно, это направление разработки является одним из приоритетных, и в ближайших версиях предполагается поддержка всех деформаций и средств редактирования сплайновых поверхностей - морфинг, работа с Artisan и т. п.

Рис. 10. Операция
Рис. 11. Подсказки
Рис. 12. Панель Layers
Рис. 13. Булевские операции со сплайнами

Приятные мелочи

      Теперь, разобравшись с революционными нововведениями, можно перейти к приятным мелочам. Я постараюсь описать их по категориям, не воздерживаясь от комментариев по поводу особенно приятных.
      Интерфейс. В текстурированном режиме можно отображать на поверхности не только карту (текстуру) цвета, но и карту прозрачности, диффузности и других каналов материала, если они содержат какую-либо информацию. В Outliner, Hypergraph и Graph Editor можно отфильтровывать объекты по имени или типам. Добавлены подсказки (tooltips) к кнопкам и полкам, что очень помогает быстро определить, какие скрипты сохранены на полках (рис. 11). Работа со слоями (Layers) организована через отдельную панель, что позволяет быстро растаскивать объекты по слоям (рис. 12). Attribute Editor может появляться вместо Channel Box в главном окне (см. OptionsЮUI Preferences).
      Моделирование. Новые примитивы включают двух- и трехточечные дуги, Torus и Square. Изопармы можно выделять пачками прямоугольным выделением, как объекты. Реализовано пересечение и отсечение кривых в 2D и 3D. Контрольные вершины можно двигать по нормали к поверхности и в направлениях U и V. Snap Align позволяет совмещать точку на одном объекте с точкой на другом, при этом первый объект перемещается в направлении второго. Можно совмещать и пары точек, тогда объект еще и поворачивается, чтобы пары располагались на одной прямой. Если вам нужно просто совместить центры (или pivots) объектов а-ля MAX, обратитесь к http://reality.sgi.com/tkluyskens_aw/txt/ queen.html - там есть скрипт и не только. Наконец-то появилось гауссовское сглаживание кривых или части кривых. Изопармы можно вставлять целыми наборами с указанием количества между уже существующими. Вы можете также "содрать" все видимые изопармы (основываясь просто на точности визуализации) с поверхности в виде новых кривых. Можно расширять кривые и поверхности в обоих направлениях, базируясь на тангенсе и кривизне. Можно создавать новые поверхности как отступ (Offset) от существующих, включая тримленные поверхности. Global Stich нуждается в дальнейшем изучении. Ну и конечно, NURBS Booleans, работают они просто шикарно и быстро, сохраняя всю историю (рис. 13). В полигонах отмечу Smooth для части объекта, продвинутый UV-маппинг и те же Booleans.
      Artisan. Artisan уже не является подключаемым модулем и работает постоянно. Как упоминалось выше, работает он теперь и с полигонами, в частности имеет любопытную функцию Paint Vertex Color Tool для рисования цветом или альфой по вершинам полигонов. Кисть Artisan стало возможным запускать по пути, а также рисовать большим количеством атрибутов. С моей точки зрения, ядро Artisan является гениальной технологической идеей, которая будет эксплуатироваться в различных ипостасях еще многие годы. Ближайшие реализации - это MAYA Fur c интерактивной стрижкой, 3D painting и средство Paint Effects, о котором ниже. Концепция трехмерной кисти в совокупности с фрактальными или динамическими эффектами может изменить концепцию заполнения трехмерной окружающей среды не сплайновыми или полигональными объектами, а явлениями и феноменами. Рис. 14. Определение Character
      Анимация. Введен новый тип ключей (Breakdowns) для совместимости с классической анимацией. Breakdowns вставляются между нормальными ключами и смещаются пропорционально смещению соседних нормальных ключей, хотя и имеют свои тангенсы. In-betweens дают возможность раздвинуть/сжать всю анимацию на один кадр, сохраняя при этом характер движения. Буферные анимационные кривые позволяют видеть разницу между редактируемой кривой и ее первоначальной формой. Реализована новая концепция Character. Идея предельно проста. Вы объединяете только нужные вам атрибуты только нужных вам объектов в один набор (Character), выбираете его, и после этого в Channel Box и в Attribute Editor появляются только эти атрибуты, собранные от различных объектов (рис. 14). Расстановка ключей теперь не требует выделения и перевыделения объектов и атрибутов в окне и Channel Box. Эта весьма удобная идея касается только одновременной расстановки ключей и более ничего.
      Skining. Введен абсолютно новый Smooth Skining. Старый, унаследованный из Kinemation, полностью сохранен под именем Rigid Skining. Старая концепция основана на том, что на присоединенной к скелетону поверхности каждая точка может находиться под влиянием только одного звена скелетона. В новом Smooth Skining каждая точка поверхности находится под влиянием нескольких звеньев с различными степенями влияния. Новый метод дает очень неплохие результаты и часто не требует дополнительных ухищрений типа Flexors для Rigid Skining.

Рис. 15. Шесть новых типов нелинейных деформаций
Рис. 16. Clip Effects - Fire
Рис. 17. Пружины можно натягивать между отдельными частицами
Рис. 18. Аттрактор Лоренца
Рис. 19. Окно HyperShade

      Деформации. Введены шесть новых типов нелинейных деформаций: bend, flare, sine, squash, twist, wave deformers (см. рис. 15). Новый Wrap Deformer позволяет деформировать один объект на базе деформаций и перемещений другого. Например, изменяя форму кривой, можно глобально деформировать поверхность (цилиндр или конус), на которую влияет кривая. Можно сделать такую кривую Soft Body и поместить ее в турбулентное поле, после чего все объекты, подверженные влиянию этой кривой, будут иметь любопытные плавные деформации.
      Динамика. Яркое нововведение - Clip Effects для создания огня, дыма и потока частиц вдоль кривой. Просто выбираете объект и говорите: "Поджечь его!" Система сама создает очень приличный огонь на базе системы частиц (рис. 16). Этот эффект реализуется при помощи источника частиц и некоторого количества Expressions - никаких подключаемых модулей. Тем, кто хочет разобраться с MAYA поглубже и почувствовать даже малую часть возможностей по созданию спецэффектов, советую хотя бы попытаться разобраться, как устроен огонь. Просто выберите огонь и откройте Attribute Editor. Поток частиц можно запускать вдоль кривой, регулируя скорость потока и его радиус на различных участках, а также множество других параметров.
      Частицы теперь корректно перемещаются, вращаются и масштабируются как обычный единый объект при помощи манипуляторов. Кроме того, можно комбинировать воздействие полей на частицы с анимацией по ключам частиц как единого объекта. Можно сгруппировать любой объект с динамически движущимся объектом, передавая ему все перемещения родительского объекта. Частицы обладают собственным внутренним временем для замедления или ускорения одних эффектов независимо от остальных и от общего времени. Поля могут работать не только в общемировой системе координат, но и в локальной системе выбранного объекта. Каждая частица теперь имеет собственную массу (в первой версии масса была общая, одна на все частицы).
      При работе с источниками частиц введены удобные манипуляторы, позволяющие непосредственно во время воспроизведения интерактивно регулировать скорость и частоту испускания, направление, рассеивание, границы испускания. Такие же интерактивные манипуляторы введены и для полей, благодаря этому не надо бесконечно останавливать воспроизведение, подправлять цифры в клеточках и запускать анимацию снова.
      Текстуры могут быть использованы для управления частотой испускания частиц с поверхности и их цветом. Если частицы испускаются из компонентов объекта (например, из контрольных вершин), можно варьировать частоту испускания для различных точек. Даже кривые на поверхности можно сделать источниками полей. Частицы и твердые тела нормально пролетают в оттримленные отверстия на сплайновых поверхностях, корректно сталкиваясь с остальной частью поверхности. Для мягких тканей добавлены новые опции при построении и возможности перестраиваться в соответствии с Construction History.
      Пружины теперь можно создавать не только целиком для объектов, содержащих частицы, но и для отдельно выбранных компонентов: контрольных точек, вершин решеток (Lattice), отдельных частиц и компонентов мягких тел (рис. 17). Можно также добавлять пружины в одно и то же место, увеличивая суммарную жесткость. Пассивные твердые тела не нужно группировать для анимации их по ключам. В версии 1 для всех твердых тел определялся один численный метод (Ridid Body Solver), сейчас он может быть определен для каждого тела отдельно со своим стартовым временем, точностью и другими параметрами. Вы также можете выключать столкновения между отдельными твердыми телами, не трогая их динамических свойств. Можно даже определить, на какое место твердого тела воздействуют динамические поля: на центр масс, на углы пограничного параллелепипеда (Bounding Box) или на контрольные вершины.
       Я оставляю за кадром внутренние архитектурные изменения ядра динамики, расширяющие наследство Dynamation и превращающие эту часть MAYA в некий законченный инструмент, требующий совершенно обособленного подхода при использовании. Здесь требуется мышление на основе понятий "поведение" и "взаимодействие", а создаваемые явления воспринимаются как единая картина поведения системы или подсистемы, а не как точные траектории или формы входящих в нее компонентов. Поэтому если вы пытаетесь контролировать траекторию одной частицы из множества или ставите многочисленные ключи на величину силы тяжести, то вы просто усложняете и без того непростую модель этого мира и в конечном счете совсем перестанете ее чувствовать. Работу с динамикой можно сравнить с работой авиадиспетчера, который не может задавать точные траектории самолетов, но тем не менее на основе своего восприятия ситуации может управлять воздушной обстановкой.
      Динамика - моя любимая часть в MAYA, поэтому я позволю себе небольшое отступление. Даже когда мне не хватает средств для моделирования некоторых хаотических явлений или просто отсутствуют некоторые модели взаимодействия и поведения, я использую возможности MEL и легко воспроизвожу, например, аттрактор Лоренца (рис. 18) или поведение упругого тела в потоке среды на экране, для чего требуется некоторое знание численных методов (Runge-Kutta) и моделей прикладной и теоретической механики. (На вопрос "зачем?", я, воспитанный в лучших традициях фундаментальной науки, скорее всего многозначительно промолчу. Да хотя бы затем, что мне это нравится, а приумножение имеющихся знаний я считаю занятием, достойным всей жизни. Лирика, однако. Или патетика. На вопрос "зачем?", как правило, отвечает время.) Все, что позволяет мне использовать численные и аналитические методы внутри MAYA (не применяя языков ВУ и спецпакетов), - это ядро MAYA, на котором выполняются все скрипты и сама MAYA, в том числе. Мне не составило труда, например, переделать некоторые меню во второй версии, чтобы они имели более привычный вид из первой версии. Это не руководство к действию, а лишь указание на то, что на основе архитектуры MAYA можно создавать качественно новые приложения в различных и довольно экзотических областях. Посмотрите директорию Scripts, разберитесь, как устроен Flow Effect, убедитесь, что половина MAYA написана на MEL. И все это открыто, под руками. Это действительно современная архитектура, созданная заново на базе лучших современных идей. Рис. 20. Работа в HyperShade
      Рендеринг. Спустимся на землю, поговорим про рендеринг. На общем уровне это, наверное, самый слабый модуль MAYA, точнее сказать, вечно догоняющий остальные, зато самый динамично развивающийся и приоритетный. Про IPR и мультипроцессорную поддержку я уже упоминал. Отмечу также, что рендеринг стал быстрее в среднем на 20% - это реальная цифра. Multilister уступил место HyperShade - новому средству представления и редактирования сети материалов, спецэффектов, источников света (рис. 19). В основе HyperShade лежит иерархическое дерево, представляющее собой сеть материалов как набор визуальных объектов, соединенных связями. При перетаскивании одного объекта на другой (например, текстуру на материал) система спрашивает, какие выходные каналы первого объекта - цвет, альфа, яркость и др. присоединить ко множеству входных каналов второго - прозрачность, самосвечение, отражаемость (рис. 20).
      Идея, как и раньше, состоит в том, что любой выходной канал любого члена сети материалов может быть присоединен к любому доступному входному каналу другого объекта в этой сети. Кроме того, похоже, существуют планы переноса в MAYA библиотеки материалов из Explore. Рис. 21. Связь источников света и объектов Связь источников света и объектов (а не материалов) обеспечивается теперь по-человечески - при помощи редактора связей (рис. 21). В закрашенном режиме можно видеть финальное разбиение (Tesselation) сплайновых моделей на полигоны в соответствии с установками в Render Globals.
      Разбиение на полигоны теперь может быть двух типов: установкой параметров вручную (как в первой версии) и автоматически. Привожу картинку, просчитанную в MAYA 2.0, специально для художника Александра Ведешкина, которому я обещал разобраться с проблемой "дырок" на швах (рис. 22). После построения Planar в Attribute Editor надо для него уменьшить величину Tolerance до 0.001. Как видно из рисунка, MAYA корректно закрывает швы и имеет параметры Curvature Tolerance и Smooth Edge для автоматического разбиения. Появилась функция Render Diagnostics, позволяющая оптимизировать сцену перед просчетом. Тип материалов и источников света можно менять уже после создания, например изменить тип существующего материала с Blinn на Phong. Рис. 22. Корректный рендеринг швов Поверхности, возмущенные displacement, можно сохранять в виде полигональных объектов для дальнейшей работы. Можно показывать границы видимой области (Safe Action) в камере, а не только полный размер кадра. Добавлен большой раздел документации типа: "Как сделать это?" Введена работа с глубиной резкости. Можно работать с двухсторонними материалами. Shadow depth maps можно считывать и сохранять отдельно. Displacement сейчас работает более корректно, независимо от размера поверхности. Antialiasing можно устанавливать индивидуально для каждой поверхности. Материал Use Background работает теперь нормально, в том числе при освещении с обратной стороны и генерации маски. Анимированные текстуры распознаются в виде filename.0001.rgb, а не только как filename.rgb.0001. Напомню, что на задний план (Image Plane), можно класть AVI-файлы (для NT) и Qucktime MOV или SGI MV-файлы (для IRIX). Вывод в AVI будет готов вот-вот, а ввод текстур из таких файлов почему-то задерживается. Рендеринг по полям наконец-то поддерживает адаптивный antialiasing (highest quality), и последнее поле в последовательности не теряется. Обратная сторона односторонней поверхности (single-sided, opposite) нормально отражается и преломляется. Кроме того, если Reflected Color установлен на какой-нибудь Environment (например, Sky), то этот материал будет отражать и небо и нужные объекты.
      MAYA Unlimited. Наверное нет смысла говорить о новшествах в MAYA Cloth, MAYA Live и MAYA Fur, сообщу лишь, что все эти модули работают на NT. MAYA Cloth теперь корректно взаимодействует с инверсной кинематикой, MAYA Fur работает не только со сплайнами, но и с полигонами, а MAYA Live имеет большое количество изменений по сравнению с версиями 1.5 и 1.0, которые мало кто видел живьем. Перечислю, что входит в Advanced Modeling: Round, Surface Offset, Enhanced Extrude, Global Solution for Stitch, Square, NURBS Booleans, Surface Extend, subdivision surfaces.

Планы на будущее

Рис. 23. Трехмерная сцена, созданная в MAYA при помощи Paint Effects       В сентябре должна появиться версия 2.1. Предположительно в нее войдет следующее: Paint Effects, многопроцессорность для IPR, отдельный пакет MAYA Games, MAYA Fusion c новым интерфейсом и функциональностью, новые динамические эффекты, видимо, библиотека материалов Explore и, конечно, исправления ошибок. Вопрос о распределенном рендеринге на NT пока открыт, так как решение для IRIX по ряду причин не может быть перенесено на NT, поэтому альтернативой будет, вероятнее всего, встраивание уже имеющихся технологий сторонних разработчиков, а это процесс совсем не тривиальный. Для очень любопытных намеренно оставляю за кадром отношения MAYA и Linux. Напомню лишь, что компания, известная ранее как Silicon Graphics, обещала обеспечить поддержку Linux для своих Visual Workstations. Прежде всего это касается, естественно, графики. Поживем-увидим. Делайте выводы.
      Paint Effects. Это некий гибрид Artisan, Studio Paint 3D, VizPaint и Dynamation. C одной стороны, это 3D paint с концепцией кистей из Artisan, с другой - возможность обычного плоского рисования теми же кистями. Кроме того, кисти могут быть определены не только как средства покраски поверхностей, но и как инструменты рисования частицами, полями, сложноопределенной геометрией, т. е. рисовать можно листьями, травой, деревьями как в 3D, так и в 2D. Концепция переопределяемых 3D-кистей базируется на ядре Artisan, а способы их переопределения могут использовать всю имеющуюся функциональность MAYA и ограничены лишь воспаленным воображением разработчиков. Представленная на рис. 23 сцена является трехмерной.

к началу статьи

Плоды просвещения

      Этим летом мне довелось побывать на учебе в европейском центре компании Alias|Wavefront, в бельгийском городе Гент. Учебный класс расположен непосредственно в центральном офисе, оборудован, как ни странно, компьютерами Intergraph, большим видеопроектором, локальной сетью с выходом в Интернет. Время моего пребывания совпало с выходом версии MAYA 2.0, и мы дружно переставили новую версию.
      В настоящее время читаются три курса по MAYA: MAYA Essentials (курс для начинающих и жаждущих диплома), MEL Fundamentals (углубленное изучение MEL) и Character Animation in MAYA. Два последних четырехдневных курса обычно завершаются однодневными семинарами по динамике и рендерингу, весьма полезными, кстати. Полномерные курсы по динамике и рендерингу для версии 2.0 будут доступны начиная с осени. Я проходил учебу для последующего получения статуса Alias|Wavefront Certified Instructor, поэтому основная часть курсов была для меня несколько формальна (хотя и не всегда). Но самой полезной вещью была возможность общаться с людьми из группы технической поддержки до позднего вечера, обычно до полуночи.
      Вообще, процесс обучения для меня обычно ассоциируется с общением с компетентными людьми на интересующие темы, поэтому я с некоторой завистью наблюдал, как специалисты из Голландии спешат  на общеголландский сбор пользователей MAYA (MAYA Users Group Meeting). Так возникла мысль регулярно собирать заинтересованных людей, владеющих MAYA в той или иной степени, для того чтобы не изобретать велосипеды и эффективно обмениваться идеями и технологиями. Тем более, что я убедился - уровень владения инструментом в России весьма высок с технической точки зрения. Поэтому, естественно, необходимо также дать возможность обучаться сотням пытливых умов в нашей стране, учитывая традиционное отсутствие книжек по предмету и специфическое знание иностранных языков. Воплощение идей относительно семинаров и обучения на www.realtime.ru. Описание стандартных курсов Alias|Wavefront есть на корпоративном сайте www.aw.sgi.com. Известный сайт Lumis переехал на www.lumis3d.com, я также рекомендую Queen Maya: http://reality.sgi.com/tkluyskens_aw/txt/queen.html, где помещены лучшие и полезные вещи о MAYA, собранные талантливым человеком из Alias|Wavefront по имени Том Клускенс. Я также хочу выразить благодарность Евгению Ростову за помощь в организации поездки в Бельгию. Все, кого интересуют различные вопросы относительно MAYA, пишите мне на sergei_ptits@mail.ru, попробую ответить.


Сергей Цыпцын
Выпускник механико-математического факультета МГУ 1988 г. Специально подготовленный специалист по продуктам компании Alias|Wavefront. Невольный художник и технический директор студии FF-studio и преподаватель Школы Реального времени.
Тел.: (095) 973-0578 E-mail: ptits@forest.glasnet.ru