17 нояб. 2010 г.

Сегодня и завтра 3D-графики и анимации



Пока я собираюсь с духом, чтобы написать небольшую статью про GI V-Ray, представляю вашему вниманию замечательную статью (c добавленными мной новыми иллюстрациями и небольшим заключением) уже упомянутого мной Сергея Цыпцына. Случайно наткнулся на неё в журнале «625». И, хотя она датирована 2007 годом, читается она вполне современно.

Сегодня и завтра 3D-графики и анимации
Сергей Цыпцын

История интегрированных трехмерных пакетов начинается с начала 90-х годов прошлого века, широко отражена в Интернете и поэтому не имеет смысла на ней подробно останавливаться. Интереснее проследить тенденции развития и мутации этих программ. Но сначала определимся, о чем (или о ком) пойдет речь.

Формально эти программные комплексы носят обобщенное название «пакеты для производства анимации и спецэффектов». Описание их предназначения довольно расплывчатое, но хорошо выглядит в текстах статей.

Среди доживших до наших дней «динозавров» этой категории необходимо упомянуть прежде всего Autodesk 3ds max [1], Autodesk Maya, Avid XSI [2], Side Effects Houdini [3]. О них, в основном, и пойдет речь. Есть, конечно, и некоторое количество программ калибром помельче, таких как бесплатный Blender [4] или недорогой Hash Animation Master [5]. Но отечественного пользователя, не сильно озабоченного пока ценовыми вопросами, мало интересует такая «мелочь». «Какой пакет самый лучший?» — вот основной вопрос русскоязычных форумов.

Несколько особняком стоят такие программы, как Newtek Lightwave3D [6] и Maxon Cinema4D [7]. Но поскольку финансирование этих разработок, похоже, основано не на их рыночных продажах, то рассматривать в этой статье их развитие нецелесообразно.

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

Модель, сделанная в Nevercenter Silo
Рассмотрим этот «костяк» поподробнее. Начнем с моделирования. Очевидно, что к сегодняшнему дню все интегрированные пакеты обзавелись не только сплайновыми и полигональными инструментами, но и средствами работы с subdivision surfаces. Математическая реализация этих поверхностей в разных пакетах различная. Усилия программистов до сих пор направлены на то, чтобы сделать работу с ними более быстрой и удобной. Однако не секрет, что первые версии интегрированных пакетов вышли еще в прошлом веке, и поэтому основной инструментарий моделирования и сама концепция несколько устарели. Усовершенствования инструментов в новых версиях идут за счет дополнительных мелких функций, вводимых на основе пожеланий пользователей. К счастью, моделирование — это процесс, который хорошо локализуется в ходе производства. Поэтому изготавливать модели можно в любом удобном пакете, а потом просто импортировать их в основную среду для последующей анимации и визуализации. На этом и сыграли относительно молодые компании, выпустившие программы именно для моделирования, в которых воплотились пожелания пользователей интегрированных пакетов, а также свежие алгоритмические идеи сегодняшнего дня. История показывает, что небольшая специализированная программа всегда будет лучше справляться с поставленными задачами, нежели соответствующий модуль интегрированного пакета. Так возникли программы Luxology Modo [8] и Nevercenter Silo [9].Феноменальный успех пакета Pixology Zbrush [10] был обусловлен концепцией работы с трехмерным объемом с помощью кистей. Еще один игрок на рынке программ для моделирования Skymatter Mudbox [11] вышел из недр студии Weta Digital совсем недавно.
Пример работы в Autodesk Mudbox
Его коммерческая версия имеет гордый номер 1.0. Как видите, на этом рынке прогресс идет довольно бурно. Все упомянутые программы имеют фантастическую скорость работы с subdivision surfaces и активно используют интерактивные displacement maps для проработки мелких деталей. Очевидно, что все они также имеют средства коммуникации, то есть обмена моделями с интегрированными пакетами.

Анимация, в отличие от моделирования, не может быть также легко локализована в независимый процесс и поэтому, как правило, производится в основной интегрированной среде. В этом смысле интегрированные пакеты довольно хорошо укомплектованы. Одним из лучших модулей для анимации является инструментарий пакета XSI. Пользователи 3ds max, привыкшие к своим анимационным контроллерам и работе в системе Character Studio, искренне считают их удобными и не помышляют о большем. Аниматоры, использующие Maya, мучаются, но продолжают использовать встроенную систему нелинейной анимации — систему крайне мощную идеологически, но реализованную с некоторыми огрехами.

Впрочем, нельзя не упомянуть о программах, предназначенных исключительно для анимации (преимущественно персонажной). Это, прежде всего, Autodesk Motion Builder, доставшийся компании Autodesk в наследство от канадской фирмы Kaydara, купленной когда-то компанией Alias, поглощенной не так давно компанией Autodesk. Это также программа pmG messiah: animate [12], входящая в состав messiah: studio. Все они позволяют сформировать свой скелет или импортировать уже готовый из интегрированных пакетов. Их задача — создать анимацию на скелете и отправить ее туда, где будут производиться эффекты и визуализация. Естественно, что «фишками» таких программ являются именно удобство и «заточенность» как раз под персонажную анимацию. Однако, в отличие от полигональных моделей, передавать персонажи и анимацию в виде данных технически довольно непросто. Для этих целей, как правило, используется формат fbx, когда-то умело навязанный компанией Kaydara в качестве универсального формата описания трехмерных сцен. В силу того что пакет Motion Builder принадлежит компании Autodesk, производящей также 3ds max и Maya, можно с высокой вероятностью предположить, что его функциональность рано или поздно будет полностью встроена в будущие версии этих пакетов или их последователей. Поэтому следует ожидать ухода со сцены специализированных программ для постановки анимации.
Кадры из фильма «Троя», созданные при помощи Syflex
В прошлом веке при упоминании об эффектах чаще всего речь шла о динамике частиц и о сопряженных с ней спецэффектах. Однако аппетиты пользователей (или продюсеров) сильно выросли на рубеже веков, и теперь к числу эффектов относят динамику жидкостей, анимацию волос и одежды, работу с мехом, выращивание деревьев и иной растительности, другие более узкие задачи. Все интегрированные пакеты всегда имели модули разной степени мощности для работы с частицами. Чемпионом в этой области всегда считался (и считается) пакет Houdini, обеспечивающий исключительно гибкий подход. Система частиц Maya также заработала прочный авторитет в этой области благодаря удачному сочетанию мощности и удобства управления частицами. Однако различные классы спецэффектов, не описываемые динамикой частиц, опять подтвердили, что специализированные программы справляются поставленными задачами лучше, чем встроенные модули интегрированных пакетов. Так, после провала фильма Final Fantasy на обломках студии Square USA возник пакет Syflex [13], предназначенный для анимации тканей и составивший сильную конкуренцию модулю Maya Cloth.
Растение, «выращенное» в Greenworks Xfrog
Syflex впоследствии был встроен в пакет XSI, что сделало конкуренцию еще более интересной. Динамика волос, появившаяся в Maya некоторое время назад, уже давно была удачно реализована в независимом пакете Joe Alter Shave and Haircut [14]. С динамикой жидкостей на основе дискретной модели лучше всего справляется программа Next Limit Realflow [15], а с выращиванием деревьев и кустов — подключаемые модули типа Greenworks Xfrog [16] или Bionatics NatFX [17]. Все эти программы так или иначе интегрируются с трехмерными пакетами, обмениваясь данными посредством общепринятых или специальных форматов.

Конечно, производители интегрированных пакетов тоже не сидят сложа руки и внедряют в программы новые виды динамики и эффектов. Чего стоит хотя бы новая динамика одежды в Maya 8.5 или динамика веревок в Houdini 8.0. Однако появление таких крупных модулей делает интегрированные пакеты все более «динозаврообразными», то есть слишком массивными, негибкими, увешанными различными типами динамики. Возможно, в будущем программы станут предоставлять пользователям возможность подключать собственные модули для просчета тех или иных видов физических объектов и процессов. Появление в Maya 8.5 модуля Nucleus — наглядное тому свидетельство. Этот подход будет отличаться от системы подключаемых модулей для 3ds max, решающих частные задачи, и обеспечивать передачу абстрактных данных, а не конкретных моделей или частиц. Впрочем, такой общий подход давно и успешно используется в Houdini.
Chaos Group V-Ray
Illuminate Labs Turtle (ныне технология Autodesk Beast)
Splutter Fish Brazil
Если перейти к визуализации, то картина достаточно проста. Встроенные системы визуализации (rendering) интегрированных пакетов не выдержали испытания временем и благополучно сошли со сцены. Исключение составляет пакет XSI, счастливо обладающий системой mental ray в качестве основного инструмента визуализации. Нельзя также поручиться за всех пользователей пакета Houdini: возможно, некоторые из них до сих пор прочно привязаны к стандартной системе Mantra и разрабатывают материалы на языке VEX. Однако индустрия диктует свои стандарты и стандартных промышленных решений для визуализации на сегодняшний день два: Pixar RenderMan [18] и mental images mental ray [19]. Все интегрированные пакеты имеют так называемые «коннекты» с этими системами визуализации. Это означает, что сцена, созданная и анимированная в любом пакете, может быть просчитана с помощью либо Renderman, либо mental ray. Конечно, есть еще масса систем визуализации типа Chaos Group Vray [20], Illuminate Labs Turtle [21], Splutter Fish Brazil [22], Next Limit Maxwell, Cebas finalRender [23], также умеющих просчитывать сцены из основных популярных пакетов. Однако их нельзя отнести к полноценным промышленным системам в силу того, что в них отсутствуют мощные средства разработки новых материалов, моделей освещения, язык описания трехмерных сцен и инструменты распределенного просчета. Некоторые из них довольно ловко решают задачу расчета глобального освещения, что стимулирует двух основных игроков (Pixar и mental images) срочно «подтягивать» свои продукты до нужного уровня.

Возможно, среднестатистический российский пользователь, традиционно озабоченный выбором самого лучшего решения и не обремененный ценовыми проблемами, может спросить: «А зачем вообще нужны эти интегрированные трехмерные пакеты?». Ведь можно взять самый лучший инструмент для моделирования, например Modo, сделать модель, передать ее в самый лучший пакет для анимации, например в Motion Builder, анимировать сцену и просчитать ее самым лучшим визуализатором, например mental ray. Теоретически это возможно, особенно, если пользователь умеет писать скрипты и лихо программировать. Однако на практике оказывается, что персонажу нужны волосы, а пакет Shave and Haircut работает только как подключаемый модуль для 3ds max, Maya или XSI. И вода, сделанная в RealFlow, тоже должна быть куда-то передана для визуализации.

Таким образом, главная функция интегрированных пакетов — служить инструментальной средой для получения, хранения и передачи данных другим специализированным программам. И без этой среды построить модель производства анимации и спецэффектов будет довольно сложно. Вы можете моделировать или просчитывать свои сцены «на стороне», но хранить их придется в определенной трехмерной программе, которая и будет основой вашего технологического процесса.

Лучше всего такой парадигме соответствует пакет Houdini: его объектная структура и концепция передачи данных между вычислительными блоками как нельзя лучше подходит для решения подобных задач.

И в завершение позволю себе немного аналитики.

За последние два года произошло много любопытных событий на рынке «тяжелой» трехмерной графики. Компания Autodesk сосредоточила в своих руках целую коллекцию программного обеспечения, собрав самые сильные и популярные программы под одной крышей. Невооруженным глазом видно, что эти программы конкурируют друг с другом, а наличие Motion Builder делает позиционирование поддерживаемых пакетов еще более затруднительным. Несмотря на упорное молчание компании по поводу будущих разработок, пока можно сказать, что ни Maya, ни 3ds max не будут «встраиваться» друг в друга. Точно также ни один из этих двух пакетов не будет «свернут» для продвижения другого. Однако наличие такого «зоопарка» в руках одной компании делает весьма вероятным появление новой разработки на основе имеющихся инструментов. Возможно, это будет постепенное обновление Maya путем замены ключевых модулей более современными решениями.

Пакет XSI, самый молодой из упомянутых в этой статье, сумел значительно укрепить свои позиции благодаря активному взаимодействию с ведущими студиями. Встраивание Syflex, язык Python [24], девяностотысячедолларовый модуль Face Robot — все это сыграло положительную роль в популярности пакета. Единственное, что смущает, — это некоторая «громоздкость» и своеобразность интеграции различных инструментов в единое целое.

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

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


Стремительно выросли объемы литературы по различным трехмерным пакетам. На крупных выставках и конференциях типа Siggraph [25] (а в России на CGEvent [26]) проходят многочисленные мастер-классы и встречи пользователей разных программ.
Кадр, сгенерированный в «почившем» Realsoft 3D
В самом деле, как бы ни был хорош продукт, без соответствующей инфраструктуры он будет бесполезен. Если не у кого спросить о проблемах, если нет разнообразной литературы и мощных информационных ресурсов, то самый совершенный, но и технически сложный пакет останется вещью в себе. Многие, наверное, помнят амбициозный проект темпераментных финских парней из Realsoft Graphics [27], мужественно выпустивших пять версий пакета Realsoft 3D и внедривших в него множество весьма передовых идей и решений. Однако, несмотря на изощренное техническое совершенство, проект умер.

А теперь давайте взглянем на номера версий основных трехмерных пакетов. Все они (за исключением шестой версии XSI) находятся в районе цифры девять. А возраст пакетов приблизился к десяти годам или перевалил за эту цифру, что означает — программы были спроектированы еще в прошлом веке на основе идей и разработок того времени. За прошедшие годы часть разработок идеологически устарела (например, встроенные системы визуализации) и на рынке появились новые идеи и решения. Тем не менее, разработчики программ вынуждены обеспечивать совместимость с предыдущими версиями, сохранять свой оригинальный формат файлов, поддерживать прежние программные интерфейсы. Новые модули (особенно купленные у сторонних разработчиков) появляются в пакетах как «нашлепки», не всегда удачно интегрированные в основную среду. Поэтому с течением времени интегрированные пакеты «пухнут» и начинают представлять собой набор как свежих технологических решений, так и безнадежно устаревших модулей. Autodesk, например, до сих пор поддерживает Maya Live в составе Maya Unlimited, не прилагая ни малейших усилий к развитию этого безнадежно устаревшего модуля.

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

Пакет 3ds max — это практически единственный из всех пакетов, «намертво» привязанный к платформе Windows. Современная индустрия вряд ли будет долго терпеть этот вызывающий факт. Нынешний рынок диктует несколько другие стандарты, нежели привязка к одной платформе.

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

Все вышеперечисленные рассуждения наводят на мысль, что в скором времени следует ожидать кардинальных изменений на рынке интегрированных трехмерных пакетов. Эти изменения не будут внезапными, возможна череда слияний и поглощений, однако существующий инструментарий устарел и требует обновления с учетом современного технологического уровня. Программное обеспечение тоже имеет свой срок жизни (до двадцатой версии, кажется, не дожила ни одна коммерческая программа).

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

Язык Python — абсолютный фаворит в индустрии компьютерной графики в последнее время. Он был поспешно встроен практически во все пакеты и призван унифицировать способ работы с данными как внутри пакетов, так и на уровне операционных систем. Возможно, это было сделано под давлением компании Disney, давно опирающейся на возможности Pythonа.

Что касается развития независимых систем визуализации, то технологический прогресс в этой области вынудит производителей программных пакетов совсем забросить собственные разработки средств визуализации и заняться интеграцией с существующими на рынке решениями. Интеграция с Pixar Renderman, похоже, станет стандартом.

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

Это относится и к мультипотоковым вычислениям. Компания Intel довольно успешно «морочит нам голову» технологиями Hyperthreading, Multithreading и грядущими многоядерными системами. Трехмерные пакеты вряд ли останутся в стороне от этой погони за производительностью.

Развитие видеокарт также может стимулировать появление новых систем просчета (визуализации), целиком основанных на возможностях видеоускорителей. Это, прежде всего, относится к просчету нефотореалистичной анимации и различных спецэффектов. Такие системы визуализации будут встроены прямо в окно камеры трехмерного пакета для мгновенного получения результата.

Появление специализированных средств для предварительной визуализации (previz) также будет стимулировать развитие систем аппаратного просчета. Быстрый просчет всего проекта, интерактивный storyboard, монтаж сцен прямо в трехмерной среде — вот основа будущих систем пре-визуализации, встроенных в трехмерные пакеты.

Следует ожидать появления более модульных систем, позволяющих подключать не только собственные модули, но «умеющих» принимать и передавать данные от других программных пакетов без помощи «неистового» программирования, а на основе продуманных интерфейсов.

В отличие от офисных программ, в трехмерных пакетах есть столько возможностей для улучшения и прогресса, что скучать в ближайшее время нам явно не придется.
Оригинал в журнале «625»

От себя 
Со времени, когда была написана статья прошло уже три года. Что же изменилось?
Если кратко, то:
  1. Autodesk купила XSI/Softimage, рендер mental ray теперь встроен во все основные пакеты Autodesk.
  2. Autodesk приобрела Skymatter Mudbox. Теперь это Autodesk Mudbox.
  3. Autodesk купила фирму Illuminate Labs, технология освещения Turtle теперь принадлежит Autodesk и называется Beast.
  4. Realsoft осилила ещё две версии своего пакета Realsoft 3D и затихла в 2008 году на версии 7.
  5. Появились рендеры и интерфейсы, способные использовать возможности GPU.
  6. Houdini стал-таки немного дружелюбней. 

5 комментариев:

  1. Статья интересная, но уж очень много воды. Нужно было сделать из нее какой-то концентрат на 5-7 абзацев :)

    ОтветитьУдалить
  2. А мне нравится, когда много воды на философскую тему. :)
    Будь это урок - конечно надо бы было сделать его короче.

    ОтветитьУдалить
  3. Особенно улыбнуло - "...Все упомянутые программы имеют фантастическую скорость работы с subdivision surfaces..." (и это про скульптинг), ну и похороненный Realsoft 3D тоже умилил :)

    ОтветитьУдалить
  4. Спасибо, во-первых, Сергею Цыпцыну и журналу «625». А мне разве что за то, что вытащил статью и немного освежил :)

    ОтветитьУдалить

Поиск по блогу