Интервью с Биллом Полсоном, директором по индустриальной стратегии в PIXAR

Билл Полсон приехал на Autodesk University Russia 2013 с целью рассказать об OpenSubdiv – новой разработке студии PIXAR, призванной стать единым стандартом для поверхностей подразделения (Subdivision Surfaces). Нам удалось поговорить с Биллом в кулуарах мероприятия и узнать в деталях о возможностях и перспективах OpenSubdiv.

RENDER.RU: Здравствуйте Бил. Расскажите нам немного о себе и о своей роли в PIXAR.

Билл: Моя должность в PIXAR – директор по индустриальной стратегии. Это необычная должность, мало где можно такую встретить. Я отвечаю за отношения PIXAR со всем графическим сообществом, включающим производителей ПО и студии. Я продвигаю стандарты в CG индустрию и помогаю таким компаниям, как Autodesk, понять нужды PIXAR, чтобы они учитывали их в своем планировании, а они рассказывают о своих планах, чтобы мы могли готовиться к новым продуктам и принимать совместные решения. Можно сказать, что я начал процесс создания OpenSubdiv, но очень, очень много людей поработали над тем, чтобы сделать его реальностью. Моя главная роль в этом процессе, была роль евангелиста, помогающего понять, зачем этот стандарт нужен.

Билл Полсон, директор по индустриальной стратегии. Анимационная студия PIXAR.

В своей работе по расширению границ индустрии я много что сделал с SIGGRAPH. Я был директором в комитетах 2010 и 2011 годов, и я основал программу SIGGRAPH Dailies!
Перед этой ролью в PIXAR я три года был руководителем по технологиям производства. Моя команда разрабатывала и следила за соблюдением этапов в рабочих процессах.
Перед этим я шесть лет был техническим директором короткометражных фильмов. Я писал технические планы ко всем короткометражкам и непосредственно руководил техническими художниками, включая моделирование и шейдинг для сцен и персонажей, кинематографию, спецэффекты, свет, рендеринг и композинг. Я этим занимался в семи короткометражках, включая номинантов на премию Оскар «Новая машина Майка», «Барашек», «Человек-оркестр» и «Похищение» – ну и еще в более чем дюжине рекламных роликов, аттракционах в парках Диснея и прочих мелочах.
Перед тем я был исполнительным техническим директором в PIXAR University, где я разрабатывал учебную программу и учил свеженанятых технических художников PIXAR в ходе 10-недельного полноценного курса. За более чем два года я обучил более 100 человек.
Я присоединился к PIXAR в 1996-м и работал над «Приключениями Флика» (эффекты, шейдинг, освещение), «О птичках» (снаряжение (риг) персонажей) и «Историей Игрушек 2» (эффекты), прежде чем занялся описанными выше вещами.

RENDER.RU: Прежде чем говорить об OpenSubdiv, дайте нам небольшое введение в Subdivision Surfaces. Почему они лучше, чем простые полигональные поверхности и NURBS?

Билл: Примечание: в PIXAR мы называем subdivision surfaces ”сабдивами”, многие называют их саб-ди.
Subdivision – это процесс, в котором геометрия, созданная из полигонов, многократно делится на все большее количество полигонов, пока это количество не доходит до максимально возможного. Это прекрасно, поскольку вам достаточно сделать низкополигональную модель, анимировать ее и отправить на этап шейдинга, освещения и визуализации, и все уточнения высокого разрешения происходят только на этапе визуализации. Они создаются, обрисовываются, и отбрасываются (за ненадобностью или для очистки памяти).
При применении классических полигонов разрешение модели такое же, как и при визуализации. Если вы хотите получить высокое разрешение в визуализации, вам надо реализовать его в модели, и за это придется платить производительностью своей системы. С поверхностями подразделения можно моделировать в низком разрешении, а визуализацию выполнять в высоком.
У NURBS есть своя проблема, поскольку это сетка из прямоугольников, а их трудно соединить в сложную модель, например, лицо, ствол дерева или кофейную чашку (мой любимый пример (улыбается)). Поверхности подразделения напротив, могут иметь любую топологию, что дает максимальную гибкость при моделировании.

Пример моделей из анимационного фильма «История игрушек» (Вуди и Баз Лайтер) созданных с применением полигонального моделирования и подготовленных к преобразованию в Subdivision Surfaces. © Disney / PIXAR

RENDER.RU: После появления Поверхностей подразделения (Subdivision Surfaces) они прошли несколько этапов развития, которые представлены несколькими версиями. Недавно было принято решение создать новую версию стандарта и выпустить этот стандарт в качестве проекта с открытым исходным кодом. Расскажите, как появился OpenSubdiv.

Билл: Сами Поверхности подразделения (Subdivision Surfaces) были изобретены в 1974 году Эдом Кэтмуллом (Ed Catmull), основателем PIXAR, и Джимом Кларком (Jim Clark), основателем Netscape, Inc. В 1998 году сотрудник PIXAR Тони ДеРоуз (Tony DeRose) добавил контролируемую резкость ребер (creases), и другие улучшения к алгоритму Кэтмулла-Кларка, что сделало технологию отлично подходящей для кинопроизводства и решила массу проблем с персонажами. К 2000-му году мы полностью перешли с NURBS на Subdivision Surfaces. До 2005-го мы создавали полигональную геометрию в Alias Power Animator и Maya, и при этом не видели Subdivision Surfaces в Alias и Maya до рендера в RenderMan – только сетку. В 2005-м мы с Alias сделали так, чтобы Maya могла показывать превью рендера. Это было превью, выполняемое программой с помощью CPU.

Пример реализации Subdivision Surfaces в Autodesk Maya. На верхней иллюстрации базовая полигональная модель кофейной кружки. На иллюстрации в центре модель с активизированным подразделением. На иллюстрации внизу модель, визуализированная с помощью RenderMan.

В 2010-м году NVIDIA выпустила GPU архитектуру Fermi, и мы поняли, что графические процессоры, наконец, стали достаточно производительными, чтобы рисовать поверхности подразделения. Мы почувствовали, что поверхности подразделения станут очень популярными, и что всем будет хорошо, если индустрия согласится на общий стандарт. Так что мы решили предложить свой стандарт, которым мы пользуемся в PIXAR, включая RenderMan. Подготовка кода к релизу заняла два года, но на SIGGRAPH 2012 мы анонсировали OpenSubdiv (beta версия).
В создании OpenSubdiv пришлось решить три проблемы.
1) патенты – у нас были патенты на такие вещи, как резкость ребер (creases), и нам надо было понять, как их лицензировать в OpenSubdiv. Мы используем лицензию Apache чтобы передать эти патентные права нашим пользователям.\

2) код – не так просто корректно настраивать резкость ребер (creases) и интерполяцию границ (boundary interpolation) во всех «зиллионах» случаев. Так что мы решили включить ключевые библиотеки RenderMan в OpenSubdiv для гарантированной совместимости с RenderMan.

3) GPU – хотя новые графические процессоры достаточно мощны, не было общепринятого алгоритма отрисовки силами GPU. Тут мы сотрудничали с Чарльзом Лупом (Charles Loop) из Microsoft Research, ведущим исследователем поверхностей подразделения и топовым экспертом по GPU. Получившийся алгоритм адаптивной прорисовки (feature adaptive drawing) теперь является сердцем OpenSubdiv.

Пример действия подразделения на геометрию модели кофейной кружки. С повышением уровня подразделения, количество полигонов в модели возрастает.

RENDER.RU: Учитывая, что OpenSubdiv – совершенно новый продукт, основанный на работе исследователей и разработчиков, расскажите подробнее, что он дает и чем отличается от предыдущих реализаций Subdivision Surfaces?

Билл: Мне нравится описывать OpenSubdiv как «соответствие стандарту плюс ускорение GPU».
Соответствие: множество людей разрабатывали поверхности подразделения, но, к сожалению, немногие из этих разработок соответствуют друг другу во всех случаях. Если я добавляю резкость ребер (crease) в Maya, а потом экспортирую модель в Houdini (в качестве примера), резкость ребра (crease) обработается иначе и модели не будут одинаковыми. Но как только Maya и Houdini начнут обрабатывать поверхности подразделения с одной общей библиотекой – OpenSubdiv – модели будут равнозначны. И они будут равнозначны в любой другой программе, использующей OpenSubdiv. Со временем, мы надеемся, такими программами станут все приложения для моделирования и рисования, все визуализаторы, даже OpenGL и DirectX.

Пример действия различных значений crease на резкость углов в модели кофейной кружки.

GPU ускорение: опять же, много людей разрабатывало решения для GPU. Чтобы сделать это, требовались исследования (как мы и сделали это с Чарльзом Лупом). Нам кажется, что самый прямой путь к подразделению на GPU – просто применить OpenSubdiv.

RENDER.RU: OpenSubdiv поддерживает современные GPU. Помогает ли большой объем видеопамяти? Участвует ли GPU в вычислениях, связанных с OpenSubdiv? Реализуются ли вычислений деформаций геометрии? Например, использование NVIDIA CUDA для ускорения вычислений.

Билл: Для большинства сцен наличие большого объема памяти позволяет использовать больше моделей, и сами модели могут быть больше, но это не влияет на то, как модель рисуется. Обратите внимание, что с Subdivision Surfaces любая модель может быть значительно легче, и при этом визуализироваться так, как будто в ней намного больше полигонов. Так что переход на Subdivision Surfaces позволяет загружать значительно бОльшие сцены. Например, в своей презентации я показал сцену с Subdivision Surfaces – комнату с массой декораций – созданную из 415 тысяч полигонов на базовом уровне. Чтобы построить эту комнату в том же качестве без Subdivision Surfaces, пришлось бы использовать 6,75 миллионов полигонов.

Модель интерьера детской комнаты из анимационного фильма «Университет монстров». Слева сцена содержит 415 тысяч полигонов, справа та же сцена, но содержащая 6,75 миллионов полигонов. © Disney / PIXAR

И да, GPU, безусловно, участвует в процессе. Основная идея алгоритма Чарльза Лупа состоит в том, что центральный процессор анализирует топологию и создает набор таблиц, описывающих, как будет происходить подразделение. После этого сам процесс подразделения происходит со значительно большей скоростью в GPU, или, если имеется GPGPU, все подразделение может проходить на GPU. Это быстрее в 3-10 раз. И если железо поддерживает шейдер тесселяции (архитектура NVIDIA Kepler), ускорение будет порядка 100х. Это потому, что большинство частей (лоскутов) в подразделённой поверхности «стандартные» - обычная сетка из прямоугольников (grid of quads), и в этих случаях за дело берутся шейдеры тесселяции.

Модель колеса Мак’Куина из анимационного фильма «Тачки». © Disney / PIXAR

RENDER.RU: Расскажите о проектах, для которых применялся OpenSubdiv. Например, использовался ли он в последнем проекте PIXAR «Университет монстров»?

Билл: Мы создали OpenSubdiv, взяв наш студийный код для поверхностей подразделения и избавив его от внутренних зависимостей, выложили его на GitHub под названием OpenSubdiv. Мы этим занимались во время работы над «Университетом монстров», иными словами, мы по-прежнему пользовались нашим студийным кодом.
С тех пор мы удалили наши внутренние коды и поместили OpenSubdiv в стандартную библиотеку. Все нынешние и будущие фильмы будут использовать OpenSubdiv, а не старые разработки.

Пример модели балюстрады использованной в анимационном фильме «Университет Монстров». Слева базовая модель, справа модель с активизированным подразделением поверхностей. © Disney / PIXAR

RENDER.RU: Если уж мы заговорили о будущих проектах, какие еще идеи можно будет реализовать с OpenSubdiv? Нет ли предположения, что дальнейшая разработка может включать участие разработчиков из других студий или даже аниматоров-фрилансеров?

Билл: Нам кажется, что создание стандарта для поверхностей приведет к взрывному росту творческой мысли по поводу способов их моделирования, анимации, визуализации и так далее. Вот примеры обсуждений, которые я слышал:

- моделирование в мульти-разрешении, используя способность подразделенных поверхностей применять смещение (displacement) на любом уровне подразделения (subdivision), не обязательно на финальном уровне подразделения поверхности. Это называется «иерархическое редактирование», и представляет собой мощное расширение, основанное на концепции карт смещения (displacement mapping);

- детализация в мульти-разрешении, где тонкие детали вроде морщин реализуются в виде более глубоких уровней подразделения;

- встроенные схемы уровня детализации, где развивается детализация поверхностей;

- ускоренные рабочие процессы моделинга, основанные на «китбэшинге» простых полигональных объектов (poly solids), которые затем «сглаживаются по краям». Это будет работать в том плане, что объекты являются подразделенными поверхностями с острыми гранями (creases). Сглаживание краев достигается простым смягчением настроек граней (creases);

- более быстрые и отлаженные процессы разработки игр, где используется экономия, предлагаемая поверхностями подразделения;

- команда Maya обсуждала концепцию, которую они называют «избавление от полигонов». Другими словами, художник должен думать о фигурах, а не о том, как объединить полигоны. Мне кажется, поверхности подразделения – идеальный кандидат для представления таких данных. Они позволяют художнику работать в любом разрешении, добавляя детализацию и смещение (displacement) по мере необходимости.

В дополнение к кино и играм, есть несколько компаний, которые размышляют о применении поверхностей подразделения для представления поверхностей в различных производственных задачах. Мы работаем с автопроизводителями, производителями игрушек и другими компаниями, чтобы понять, как использовать поверхности подразделения в их работе.
Что касается разработчиков из других студий, наш сайт на GitHub чрезвычайно активен. Там мы принимали дополнения к OpenSubdiv от других студий, производителей ПО и железа, исследователей, разработчиков игровых движков и т.д. В каждом случае мы тестируем предложение на большом количестве разнообразных моделей, чтобы убедиться, что оно не оказывает влияния на лимит рисуемых поверхностей. Если изменение делает то, что нужно, и ложится на общую архитектуру, мы всегда его принимаем.

RENDER.RU: Каковы планы по внедрению OpenSubdiv в продукты Autodesk? Есть ли новости насчет того, будет ли разработан специальный плагин для 3ds Max? Будет ли OpenSubdiv полностью реализован в продуктах Autodesk Maya и Autodesk Softimage?

Билл: Сперва, Maya. Где мы находимся сейчас: PIXAR и Autodesk сотрудничают с 2007-го года, работая над максимальной интеграцией Maya и RenderMan, и по большей части геометрия полностью соответствует. Мы уже несколько лет не сталкиваемся ни с одной проблемой. Недавно нашли небольшие неточности в текстурировании и работаем над исправлением.
Надо отметить, что Maya уже сейчас имеет отличный алгоритм Кэтмулла-Кларка для построения сабдивов. Единственная проблема – все делается силами центрального процессора и основной памяти. И мы, и Autodesk заинтересованы в том, чтобы перенести эти вычисления на GPU и в видеопамять, что позволит значительно ускорить процесс визуализации, никак не повлияв на конечный результат. Возможно, результат будет даже лучше, т.к. детализация сверхвысокого уровня не идет на центральном процессоре, но вполне может на графическом. Но сами инструменты останутся прежними.

Модель персонажа WALL-E из анимационного фильма «ВАЛЛ-И» и низко-полигональная модель колеса, и модель после подразделения. Обратите внимание на ребра, к которым применено отдельное значение Crease (выделены жирным). © Disney / PIXAR

Где мы будем в ближайшее время: в течение прошедшего года мы активно сотрудничали с Autodesk над включением OpenSubdiv в Maya. У нас непосредственно в нашем офисе PIXAR работает сотрудник Autodesk, член команды разработчиков Maya. Пока нет точных дат релиза, но мы приближаемся к нему с каждым днем. Как только интеграция состоится, Maya будет полностью соответствовать, развивающемуся стандарту OpenSubdiv и будет работать значительно быстрее на машинах с современными графическими ускорителями, особенно с шейдерами тесселяции и GPGPU.
Еще раз хочется подчеркнуть для пользователей Maya, т.к. часто встречаю этот вопрос: для конечного пользователя никаких изменений не произойдет, останутся прежние привычные инструменты, переучиваться не придется. Просто все будет работать в несколько раз быстрее.
Autodesk официально объявил, что со временем все процессы подразделения во всем ПО будут производиться посредством OpenSubdiv. Maya будет первой, кто будет следующим – решат команды разработчиков.

Пример финальной визуализации сцены из анимационного фильма «Университет Монстров» где в качестве основного типа геометрии использованы поверхности подразделения. © Disney / PIXAR

RENDER.RU: Можно ли кратко сказать, что успех Вашего подразделения означает для всей студии PIXAR?

Билл: Два ответа: во-первых, поверхности подразделения дают возможность строить любую модель, не волнуясь насчет уровня детализации и топологии. Во-вторых, переместив поверхности подразделения в GPU, мы дали художникам возможность увидеть, как выглядит их реальный персонаж, а не модель в режиме wireframe, до процесса визуализации.

RENDER.RU: Какие движки визуализации сейчас полноценно поддерживают OpenSubdiv?

Билл: Это зависит от конкретных производителей – если они хотят адаптировать, то могут это сделать, мы их к этому призываем. Причина, по которой мы столь плотно сотрудничаем с Maya заключается в том, что Maya – это источник, в котором все будут осуществлять рендеринг. Других производителей ПО мы призываем внедрять у себя OpenSubdiv, объясняя им, что в Maya он неизбежно будет и вам придется к этому адаптироваться. Разработчики пакета Houdini уже работают над этим, они уже объявили и продемонстрировали это, скорее всего будет представлено в конце октября или ноябре.
Еще хочется упомянуть mental ray. У них все хорошо, но я не уверен, что их определение резкости ребер (creases) соответствует моему. Если мы хотим адаптировать OpenSubdiv под mental ray, спецификации должны быть идентичными. Поэтому мне бы очень хотелось, чтобы разработчики mental ray прочитали код OpenSubdiv и поняли, как у нас обрабатываются ребра, чтобы был общий стандарт. Хотелось бы им передать – если вам нужна помощь, просто позвоните нам (улыбается).

RENDER.RU: OpenSubdiv может применяться не только в узких профессиональных задачах, но и в игровых движках, и далее вплоть до мобильных технологий? Насколько он универсален?

Билл: Начнем с мобильных технологий – в прошлом году вышел Motorola X Phone. Мы работали с ними, чтобы интегрировать OpenSubdiv в их OpenGL-драйверы. Motorola сделала на этом интерактивное приложение, в нем можно рисовать персонажей с помощью поверхностей подразделения. Они хотели это реализовать как подарок своим пользователям, а нам хотелось показать, что наша система может работать и в мобильных телефонах. Преимущества те же – модели легкие, а анимация – полноценная, тяжелая.
По поводу GPU еще обращу внимание, что PIXAR присоединился к Kronos Group и мы работаем над предложениями для OpenGL, которые позволят легче подключить процессы на GPU к OpenSubdiv.

Пример реализации OpenSubdiv в игровом движке.

Что касается игр – то, разумеется, там OpenSubdiv тоже может и должен применяться, потому что модели могут быть легкими. Проблема в том, что разработчики игр пока часто мыслят полигонами. И если делать модели из кучи полигонов, то они будут медленно обрабатываться что с подразделением, что без него. Здесь важно, чтобы сами разработчики научились мыслить категориями поверхностей подразделения, а это иная система моделирования и процесс перестройки мышления займет достаточно много времени.
Впрочем, есть один интересный пример: в прошлом году на FMX я пообщался с Crytek, создателями движка Crysis, съездил к ним во Франкфурт и показал им презентацию, они сказали: окей, это интересно, мы попробуем. Дело было в мае, а уже в июле у них был готов рабочий движок, причем мы им вообще не помогали, они все сделали сами.
Почему у Crytek все получилось настолько быстрее, чем у нас с Maya и другими разработчиками? Дело в том, что Maya – это инструмент для создания топологии, объектов, моделей, а игровой движок просто рисует картинку. Рисовать относительно просто, а вот создать доступный инструмент для создания моделей – это трудоемкая задача.

Демонстрация OpenSubdiv на мероприятии Meet the Experts

На специальном событии, посвященном запуску новых версий продуктов Autodesk для индустрии M&E, были продемонстрированы возможности OpenSubdiv и его ранней реализации в Autodesk Maya.

Статья посвященная OpenSubdiv V2 от fxguide “Pixar’s OpenSubdiv V2: A detailed look“

Сайт посвященный PIXAR OpenSubdiv

Сообщество OpenSubdiv на GitHub

Благодарим Российское представительство корпорации Autodesk за помощь в организации встречи и интервью с Биллом Полсоном на Autodesk University Russia.

821 0 850 14
8
2013-11-06
Так а чем отличается ОупенСабдив от обычного? Только реализацией на GPU и кросспакетностью?
2013-11-06
внешне - вот этим [url]http://www.youtube.com/watch?v=eZXyoBg3hZ4[/url]
2013-11-06
А! Если бы не это видео, я бы не узнал, что в Maya 2014 появилась такая вещь как crease set editor. Был плагин для 3d max, turbosmooth pro называется. Но когда теперь есть подобное встроенное в Maya, то открылось просто море счастья и радости.
2013-11-08
А разве в маю это уже встроено? Судя по http://www.youtube.com/watch?v=zmbGDurld2g в ней такое же @#$V как и в максе.
2013-11-09
Никак не отгоню мысль, что похоже на векторную графику...
2013-11-13
сетка такая "странная" на Вуди и Базе. вроде все твердят что нужно по мышцам сетку строить.....
2013-11-13
[quote=GREYFOX] сетка такая "странная" на Вуди и Базе. вроде все твердят что нужно по мышцам сетку строить..... [/quote] ну во первых какие могут быть мускулы у кукол? во вторых стилизация прошлых частей должна угадываться. в третьих растяжение губ и образование носогубной складки обуславливается направлением ейдж лупов. так что все тут верно.. ну а глаза тут вообще отдельно.
2013-11-14
Перевод — мягко говоря ужасен. Одна цитата [quote]- моделирование в мульти-разрешении, используя способность подразделенных поверхностей применять смещение (displacement) на любом уровне подразделения (subdivision), не обязательно на финальном уровне подразделения поверхности. Это называется «иерархическое редактирование», и представляет собой мощное расширение, основанное на концепции карт смещения (displacement mapping);[/quote], что курил первеодчик...
RENDER.RU