Создание программы-рендерера. Интервью с Максом Лиани

Макс Лиани

Макс Лиани

 

Справка

Ре́ндеринг (англ. rendering — «визуализация») — термин в компьютерной графике, обозначающий процесс получения изображения по модели с помощью компьютерной программы.

Ше́йдер (англ. Shader; схема затемнения, программа построения теней) — это программа для одной из ступеней графического конвейера, используемая в трёхмерной графике для определения окончательных параметров объекта или изображения. Она может включать в себя описание поглощения и рассеяния света произвольной сложности, наложения текстуры, отражение и преломление, затемнение, смещение поверхности и эффекты пост-обработки.

Лайтер — специалист по построению схемы освещения (компьютерная графика)

Трассировка пути (англ. path tracing) — методика рендеринга в компьютерной графике, которая стремится симулировать физическое поведения света настолько близко к реальному, насколько это возможно.

Движок рендера/ Графический движок (англ. render engine) — промежуточное программное обеспечение , программный движок, основной задачей которого является визуализация (рендеринг) двухмерной или трёхмерной компьютерной графики.

“Лего Фильм” на сегодняшний момент стал прорывом в компьютерной графике. Впрочем, все мы знаем, что такой успех невозможен без многочисленных часов работы опытных, талантливых и трудолюбивых художников.

Макс Лиани один из тех, благодаря кому крошечные кирпичики конструктора выглядят настолько реалистично. Почему? Он написал программу-рендерер специально предназначенную для этой цели. С нуля. Специально для онлайн-конференции CGSociety Макс рассказал о своей проделанной работе, работе в компании Animal Logic и о своей программе для рендера Glimpse (Глимпс).

 

CGSociety: Спасибо за то, что согласились поучаствовать в он-лайн конференции! Можете ли вы рассказать, как вы обнаружили в себе творческие способности, и что вдохновило вас присоединиться к этой индустрии?

Макс: Я всегда любил фильмы. Но когда я был ребенком, я никогда не задумывался, что моя работа будет с этим как-то связана. Конечно, я был вдохновлен необычайными картинами такими, как «Парк Юрского периода», но там, где я жил, это казалось таким недостижимым. Я вырос в Италии, и могу точно сказать, что индустрия визуальных эффектов там была не так уж развита. Моя страсть вспыхнула вначале 90-х, когда мне было 16 лет, тогда я  делал небольшие композиции из кубов и овалов и делал визуализацию(рендер) на своем новеньком компьютере 386 PC.

CGSociety: Как начиналось ваше обучение? Должно быть, было трудно найти учебные материалы, гораздо сложнее, чем сегодня.

Макс: Тогда было достаточно тяжело найти информацию, если конечно ты не студент престижного университета. Книги было трудно достать, да и были они очень дорогие. Дома ни у кого из нас не было доступа к интернету, не было обучающих видео,  школ, где это можно было бы изучать. Я всему учился самостоятельно, и позже я встретил хорошего друга, который разделил со мной мою страсть. Мы совершенствовали свои навыки, работая вместе над проектами. На свое первое настоящее собеседование я пришел с парой дискет формата 3,5 в руках »  … это все, что у меня было … и я получил работу! Я провел большую часть своего времени работая за компьютером моноблоком производства Silicon Graphics, который я не мог себе позволить купить. Я начал изучать механизмы разработки программного обеспечения, чтобы решать технические проблемы, с которыми  я сталкивался. Потом я начал обучать студентов. И вот так, перебегая от одной небольшой компании к другой, я провел около 10-ти лет.

CGSociety: На данный момент вы живете в Австралии и работаете в Animal Logic (Прим: Австралийская анимационная и VFX студия). Как вы попали в такую большую компанию после 10 лет работы  в Италии?

Макс: Несмотря на довольно большой опыт, было очень трудно попасть в большую компанию. Для этого нужен был достойный шоурил, хорошие навыки, некоторые связи и, конечно, удача. Один друг, с которым мне довелось познакомиться на курсах, сказал мне, что Animal Logic ищут людей для предстоящего проекта “Делай ноги”, это был 2005 год. Шоурил у меня был слабоват, однако во многом благодаря моему другу меня и приняли. Он знал, что я хороший специалист, мне только нужно было дать шанс, чтобы проявить себя. И вот настал день, суббота, я взял билеты на самолет и вместе со своей любимой женой улетел в Австралию. А в понедельник утром я , уставший после перелета, начал работу. После 24 часов полета все казалось адом.

Впервые за долгое время я оказался рядом с опытными специалистами, и я, как губка, впитывал знания. Через 6 месяцев меня повысили с младшего лайтера до старшего, а потом и вовсе до главного. Мне доверили одни из самых странных и визуально сложных эпизодов в фильме. Когда работа над проектом закончилась, с большинством художников не захотели работать далее, а я был одним из немногих лайтеров, которому предложили остаться.

CGSociety : Как вы думаете, почему выбрали именно вас?

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

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

CGSociety: Как изменилась ваша роль с того момента, как вы начали работать в  компании Animal Logic?

Макс: Через пару лет работы в Animal Logic, я начал вносить что-то новое в процесс. Опираясь на основные принципы, я разработал три поколения системы шейдинга для нашей студии, которые используются во всех проектах, начиная с 2007 года. Я вырос со старшего лайтера в мультфильме «Делай ноги», до главного лайтера в фильме «Легенды ночных стражей: Хранители ночных сов«, а позже стал супервайзером в проекте «Прогулки с динозаврами». И на протяжении всего этого пути я учился. Я не только улучшал свои художественные и технические навыки, но и делал упор на такие навыки, как управление, дипломатия и доверие. Если говорить в общем, когда вы хотите что-либо изменить, то, как правило, вы находите друзей и сторонников, но найдутся и те, кто все равно останется недоволен. Вы можете быть лучшим художником или инженером в мире, но, если вы хотите добиться успеха в команде, вам нужно уметь уважать людей и быть хорошим дипломатом.

Легенды ночных стражей: Хранители ночных сов

Легенды ночных стражей: Хранители ночных сов

 

Освещение на проекте «Прогулки с динозаврами»

Освещение на проекте «Прогулки с динозаврами»

 

CGSociety: Теперь предлагаю поговорить о  проекте «ЛЕГО. Фильм». Вы решили немного отклониться от своей обычной роли и создать что-то новое, на самом деле необходимое для этого фильма. Можете ли вы рассказать нам об этом?

Макс: Во время работы над фильмом, я решил отложить на некоторое время роль супервайзера. У нас уже была отличная команда, включая главного лайтера (Крейг Уэлш) и художественного руководителя (Грант Фрекелтон).  Нужен был кто-то, кто сможет решить технические вопросы, которые выходили за рамки исходных данных. Эту задачу я решил взять на себя

В нашем распоряжении был Renderman от компании Pixar. Очень хороший движок. К сожалению то, что нам нужно было визуализировать для проекта «ЛЕГО. Фильм»,  этот движок не  мог переварить ни при каких условиях. Я говорю о трассировке лучей без кэширования излучения (Прим.: radiosity) (зеркальные и глянцевые отражения и преломления), подповерхностного рассеивания и плотной геометрии, а это в фильме повсеместно.

Взять к примеру «пластмассовость» конструктора . Большинство из нас скажут: «Неужели же это так трудно!» Все дело в том, что у всех с детства сохранилось представление о том, как должен выглядеть пластик конструктора Лего! И ничего с этим не поделаешь. Традиционные трюки освещения, используемые в компьютерной графике, здесь не будут работать. А нам никак не хотелось, чтобы фильм получился по итогу “компьютерным”.

Освещение в проекте «ЛЕГО. Фильм»

Освещение в проекте «ЛЕГО. Фильм»

 

CGSociety: Так что же привело вас к тому, чтобы создать собственную программу-рендерер? Такое решение, конечно, не могло появиться сразу?

Макс: Мы обсуждали множество возможных решений, большинство из которых требовало слишком много времени или большого бюджета, или результат мог получиться не таким успешным, как мы ожидали. Я уверен, что есть и другие средства визуализации, которые бы прекрасно нам подошли и которые могли бы отрегулировать возникающие проблемы, но дело в том, что мы не можем поменять движок рендера (Прим.: render engine) в ходе проекта. Это как «первое правило» в Бойцовском клубе. Вы можете сделать такое в маленькой студии, когда идет съемка небольшого фильма, где художники используют стандартные инструменты. В больших же студиях тратятся миллионы долларов инвестиций на инструменты собственной разработки, построение пайплайна (Прим.: рабочего процесса) и средства автоматизации.

Требуются годы, чтобы внедрить в общее пользование такую всеобъемлющую технологию, как новый движок рендера, если, конечно, только вы напишете собственную программу-рендерер, которая будет совместима с уже существующими ассетами (Прим.: заготовки, контент) и процессами. Но даже это занимает несколько лет. В конце концов, приходит понимание, что в ближайшее время вам все равно понадобится такое решение, и поэтому пришел момент что-то  менять. У нас это произошло в конце 2010 года.

CGSociety: Это началось еще до проекта “Лего. Фильм”?

Макс: Когда меня назначили главным лайтером в фильме «Прогулки с динозаврами в 3D», я провел целый год в исследованиях и разработке, прежде чем собирать команду. Я пытался обновить нашу систему шейдинга, чтобы она лучше работала как для проекта «Прогулках с динозаврами», так  и  для предстоящего фильма «Великий Гэтсби». Итак целый год мои усилия были направлены на исследование, проектирование и разработку своей системы шейдинга и лайтинга (освещения) «PHX» (до того как она появилась в движке Renderman от компании Pixar). Но я хотел дать лайтерам некоторое преимущество. Я хотел улучшить качество в рамках имеющегося бюджета. В свое свободное время я начал развивать экспериментальную программу по интерактивной трассировке пути под названием Glimpse (Глимпс).

Освещение в фильме «Великий Гетсби»

Освещение в фильме «Великий Гетсби»

Освещение в фильме «Великий Гетсби»

Освещение в фильме «Великий Гетсби»

 

CGSociety: Почему  вы выбрали именно такое  название: Glimpse?

Макс: Glimpse с английского переводится, как «беглый взгляд, беглое знакомство». Художнику трудно творить, если он не видит, что он делает. Если он не в состоянии исследовать творческий процесс. Для лайтера Glimpse — это рационализация такого процесса. Ему просто необходимо работать в интерактивном режиме, чтобы «иметь представление» о том, как выглядит освещение.

CGSociety: Расскажите, как вы достигли такого “представления” освещения в контексте вашей программы-рендерера?

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

CGSociety: Как эта система отличается от систем освещения, таких как LPics или «LightSpeed» или даже современного рендеринга с использованием решений OpenGL?

Макс: Стохастическая трассировка пути – это в принципе тот же алгоритм, конечный результат которого будет высокого качества. Эта система обеспечивает очень быстрое взаимодействие без какого-либо сетапа (Прим: настройки) или предварительных вычислений. Вы нажимаете кнопку «рендер» и через одну секунду вы видите результат. Конечно же, вы не получите 60 кадров в секунду, но если вам нужно “положить тени и световые пятна” на какой-то фрагмент фигуры, или перейти на таймлайне (Прим.: временная шкала) к следующей позе ваших персонажей, это будет сделано точно и мгновенно.

CGSociety: Но это всего лишь помогает сделать предпросмотр освещения. А чем программа полезна для финального рендеринга?

Макс: Да, верно. Если бы я использовал некоторые решения OpenGL, то я бы застрял. Для проекта “Лего. Фильм” нам просто пришлось снова раздвинуть границы. Мне нужно было превратить свой ​​«экспериментальный» механизм в полноценную программу-рендерер, чтобы использовать на производстве. К тому же, у нас было меньше года, чтобы сделать это, поскольку люди должны были использовать эту систему начиная с самого первого дня создания фильма. Я говорю обо всем, что мы считаем само собой разумеющимся: надежный API (Прим.: Интерфейс программирования приложений — набор функций определенного проекта, доступных для использования в сторонних проектах), формат файла сцены, плагины, программируемые шейдеры, процессуальная геометрия, световые каналы, дополнительные выходные каналы, статистика и регистрирование ошибок, юнит-тесты, стерео рендеринг, глубина поля резкости, и этот список можно продолжать и продолжать.

Плюс ко всему над задачей в основном работало всего-то два человека. Нам, конечно, помогали и другие специалисты из отдела исследований и разработки, например налаживать пайплайн и решать некоторые сложные математические задачи. Но по большей части нас было двое: я и талантливый Люк Эмроуз. Мы должны были писать эту программу, интегрировать ее в движок рендера Renderman от Pixar, чтобы мы смогли можно было переместить какой-либо элемент рендеринга за один раз. Сначала это было просто отбрасывание теней, за ним быстро последовало глобальное освещение, затем подповерхностное рассеивание света. Чем больше мы переходили на Glimpse, тем больше улучшалось качество нашего изображения, установка освещения становилась проще и быстрее, в то время как рендеринг становился все быстрее и быстрее.

CGSociety: Получается, что теперь у вас есть готовая программа-рендерер?

Макс: Могу я ответить «да и нет»? До самого конца фильма, я верил, что остается всего-то 2 или 3 недели, и у нас будет наша программа-рендерер. Мы добились большего, чем мы запланировали. Однако, к сожалению не все лайтеры смогли переключиться на новую программу, потому что все еще  придерживались гибридного подхода. Но несколько бравых ребят справились с задачей, и у нас было несколько шотов (Прим.: план съемки) с персонажами и элементами на заднем/среднем плане и даже парочкой на крупном плане, которые были отрендерены непосредственно в Glimpse. Чтобы точнее ответить на ваш вопрос, да, у нас есть обширная программа-рендерер для твердых поверхностей. Но он до сих пор не позволяет визуализировать объем, волосы или частицы. Поэтому для решения ежедневных задач мы по-прежнему используем движок Renderman от компании Pixar в сочетании с Glimpse.

 

Перевод и редакция. Источник: http://www.cgsociety.org/index.php/CGSFeatures/CGSFeatureSpecial/building_a_renderer