Роб Бредоу — исполнительный креативный директор и глава ILM. Около двух десятков лет назад он был ведущим аниматором эффектов фильма «Стюарт Литтл» в Sony Pictures Imageworks — студии, в которой он позже станет руководителем отдела VFX и техническим директором.
«Стюарт Литтл» режиссёра Роба Минкоффа стал одним из первых серьёзных работ Imageworks про живых существ, и поэтому студии пришлось вплотную заняться решением задачи меха. После выхода фильма Бредоу на SIGGRAPH 2000 рассказал о работе студии по рендерингу меха в RenderMan. Важным моментом презентации стало то, что в сопроводитлеьной статье SIGGRAPH был опубликован реальный поверхностный шейдер (вместе с некоторыми другими шейдерами).
На двадцатую годовщину выпуска «Стюарта Литтла» я связался с Бредоу, чтобы поговорить о том этапе работы в Imageworks, и в том числе о решении проблемы меха, а также других трудностей, через которые пришлось пройти коллективу при создании фильма.
Вы пришли в Imageworks, чтобы участвовать в создании этого фильма, или уже какое-то время там работали?
Роб Бредоу: Когда я начинал работать в Imageworks, «Стюарт Литтл» стал моим самым первым фильмом. На самом деле, в тот промежуток времени в Sony Imageworks создавались два серьёзных проекта. Это были «Стюарт Литтл» и «Невидимка». Меня спросили, есть ли у меня предпочтения, и я ответил, что хотел бы поработать над «Стюартом Литтлом», потому что он казался мне очень интересным.
Можно сказать, что до этого момента Imageworks не работала над крупными фильмами с живыми существами, кроме, может быть «Анаконды» и «Годзиллы», не правда ли?
Роб Бредоу: Незадолго до этого Imageworks проделала большую работу над «Звёздным десантом», хотя живых существ для него создавала студия Tippett. То есть да, насколько я помню, это была первая серьёзная задача, и к тому же, этот персонаж стал первым цифровым персонажем, исполнявшим главную роль в фильме с актёрами. Поэтому это был очень, очень важный этап.
Итак, вы сходу приступили к созданию этого пушистого существа, и Imageworks до этого не приходилось работать с подобными вещами. Другие студии уже создали несколько существ с шерстью, например, для «Джуманджи» и «Могучего Джо Янга», но что знали вы в то время о подобных персонажах?
Роб Бредоу: Когда я приступал к проекту, у меня было очень мало опыта работы с такими персонажами — они очень сильно отличаются от персонажей «Годзиллы»! [Над которыми Бредоу работал в VisionArt]. К тому же поверх меха на нём была одежда. Многим из нас впервые пришлось иметь дело с подобными вещами. У фильма было четверо руководителей отдела компьютерной графики (Барт Джованетти, Джей Редд, Брет Сент-Клэр и Скотт Стокдик), и каждый из них взялся за собственную обширную область задач.
На SIGGRAPH Asia 2019 Роб Бредоу рассказал о своей работе над «Соло», а также о четырёх десятках лет создания сюжетных историй в ILM
Мне сложно понять, почему студии визуальных эффектов, да и вам как личности не доводилось иметь дело с мехом до работы над таким важным персонажем. Но могу предположить, что такой в то время была природа работы над визуальными эффектами.
Роб Бредоу: Верно. Само создание фотореалистичных компьютерных персонажей в целом тогда было относительно новым делом. Поэтому идея о том, что персонаж с мехом будет находиться перед камерой в течение столь долгого экранного времени, была совершенно новой. И даже годы спустя, когда мы работали над «Стюартом Литтлом 2», нам в Imageworks впервые довелось работать с перьями, а это была совершенно новая для нас сложность. Это была эпоха, когда приходилось делать впервые многое то, что сегодня воспринимается как должное.
Как же вы начали осваиваться с техниками имитации меха?
Роб Бредоу: Начнём с того, что мой основной задачей при работе над лентой была анимация эффектов. Я почти всё время занимался элементами, которые не относились к мыши, дополняли её — пузырями, водой и отпечатками лап. Я писал эти системы и создавал множество таких эпизодов, это и было моей основной работой. Наверно, я потратил на это около 70% времени. Но люди вокруг меня работали над мехом и тканью, и для некоторых из них это была основная работа.
Главным программистом шейдеров, отвечавшим за создание шейдеров меха Стюарта, был Клинт Хэнсон. Он пробовал множество разных моделей. В исследованиях использовались модели из различных статей, а Каджия Кэй проделал отличную работу по аппроксимации освещения на цилиндре без необходимости интегрирования вручную освещения со всех направлений. Именно с этого мы и начали, но интересно было то, насколько затратно было реализовать мех, особенно в те времена.
Пока Клинт писал шейдеры, на модели Кэя мы не могли получить реакцию освещения, которая интуитивно бы воспринималась как естественная. Нам нужна была упрощённая система для того, чтобы выполнить расчёт освещения кожи, а затем включить мех, чтобы он освещался аппроксимированно так же, как и кожа. На самом деле, в наших первых моделях, мех был тёмным, а кожа светлой, и она накапливала больше освещения рядом с терминатором, потому что именно так и работают цилиндры — когда они направлены перпендикулярно источнику освещения, они получают больше света. Это было совершенно контринтуитивно.
Поэтому мы придумали для шейдера хак, который «воровал» освещение из рассеянного освещения кожи как его изначальный компонент освещения. Именно так освещён низ меха, а когда мы приближаемся к его концам, то освещение затухает и становится более точной моделью затенения цилиндров. Мы могли управлять значениями параметров, которые хотим использовать. В конечном итоге мех начал выглядеть достаточно реалистично, несмотря на то, что это было абсолютным хаком. В первую очередь он был изобретён для того, чтобы художникам по освещению было проще применять освещение к коже без меха и получать предсказуемый результат при включении меха. На самом деле наши модели освещения в то время были не очень точны, зато они оказались очень полезными!
Фрагмент шейдера меха, выпущенного как часть текста курса «Advanced RenderMan 2: To RI INFINITY and Beyond» в рамках SIGGRAPH 2000.
Какую предварительную работу пришлось проделать, чтобы проект смог превратиться в фильм?
Роб Бредоу: Экранный тест Стюарта Литтла проводился ещё до того, как было одобрено производство фильма, потому что руководство хотело увидеть, как будет выглядеть мышь. Этот тест проводился ещё до того, как я пришёл в Imageworks, и выполнялся он в системе, которая почти полностью отличалась от системы, которую мы затем создали для фильма, чтобы как можно быстрее получить результат.
Я бы сказал, что самым важным вопросом, на который помог ответить тест, заключается в том, будет ли персонаж привлекательным, если его отрендерить как анимированный 3D-персонаж. Во время теста дизайн персонажа ещё не был окончательным, в нём он подходил к зеркалу и поправлял свой галстук-бабочку. Он выглядел очаровательно. Тест способствовал одобрению фильма, после чего нам пришлось разбираться, как создать сотни эпизодов с таким уровнем сложности.
Каково это было: съёмки ведь уже начались, а вы по-прежнему занимались исследованиями и разработками, чтобы разобраться, как реализовать мышь, её мех и одежду?
Роб Бредоу: Это было интересно, потому что над многими кадрами мы работали на сторибордах, ещё до того, как были отсняты планшеты для цветовой калибровки. Руководством визуальными эффектами занимался легендарный Джон Дайкстра вместе с Джеромом Ченом, опытным руководителем отдела VFX в Imageworks. И они занимались фотографированием фильма. Но разумеется, всегда есть разница между тем, что ты планируешь на сторибордах и тем, что на самом деле происходит в студии или в местах съёмки. Атмосфера в студии была суетливой, все стремились подготовить всё нужное.
Например, в фильме есть эпизод с канализацией, это была одной из моих основных задач. В нём Стюарта смывает в канализацию и в водопад. Джон Дайкстра решил основную часть этой миниатюры снимать на плёнку, и в то время на то были веские причины. Мне всё равно пришлось делать множество интерактивных всплесков и мы заменили воду вокруг Стюарта на графику, но зато нам не потребовалось создавать всю эту сцену в компьютерной графике.
Какие ещё шейдеры опубликовала Imageworks, кроме шейдера меха?
Роб Бредоу: кроме него мы раскрыли код шейдера деформаций, который был шейдером смещений и рассеянного освещения для крошечных отпечатков лап Стюарта. Мы использовали этот шейдер деформаций, когда у нас была реальная фотография ковра, ковровой дорожки или чего-то подобного, и Стюарту нужно было оставить на них следы. Мы деформировали, а по сути выполняли морфинг плоскости, чтобы получить области с высоким и низким уровнем освещения и сделать отпечатки более правдоподобными.
Ещё был шейдер тени контакта с поверхностью. Сегодня так забавно об этом вспоминать. Это были простые пятна тени, которые сегодня создаются в каждом фильме. Теперь мы вычисляем их совершенно по-другому. Но тогда мы делали это впервые, насколько я знаю, и у нас был специальный шейдер для создания мягкой тени контакта под персонажами. Мы не могли сделать это при помощи отражённого освещения. Сегодня модель ambient occlusion позволила бы нам создать намного более качественные тени. Но благодаря этому способу мы могли спроецировать мышь вниз на плоскость и быстро получить под ней красивую расплывчатую тень.
Вы помните, какой была реакция на публикацию шейдеров на SIGGRAPH? Мне кажется, что это было здорово с вашей стороны, и не думаю, что такое происходит часто.
Роб Бредоу: Это был важный вопрос, и внутри студии было много дискуссий о том, стоит ли это делать. В результате всё получилось замечательно. Sony поддержала нас и разрешила опубликовать шейдеры, и когда мы их опубликовали, это действительно показалось серьёзным поступком. В тот день мы получили много отзывов на SIGGRAPH, а в течение последующих пяти лет многие люди писали нам, что занимаются чем-то подобным или что их вдохновили наши работы.
Даже несколько лет назад я получил письмо от студента, изучавшего эти шейдеры. Я ответил ему: «Сегодня больше не стоит использовать эти модели. Это был хак. Для 2000 года он был актуален, но сейчас ему уже почти 20 лет. Используйте что-нибудь другое». Но было очень интересно видеть, что у него оказалась такая долгая судьба, и что он вдохновлял людей. Это был отличный способ поддержки сообщества, вдохновивший на множество инноваций в компьютерной графике.
Очевидно, мех был серьёзной задачей, но как насчёт других вещей? Например, когда Стюарт промокал, его мех слипался. Как вам удавалось справляться с подобными задачами?
Роб Бредоу: Со слипшейся шерстью всё было очень интересно. В этой области исследований большую работу проделали Армин Брудерлин и Боб Уинтер. Они тщательно проанализировали референсные фотографии и придумали механизм слипания, который приклеивал группу волосков к ключевому волосу, заданному для отдельных капель. Было очень интересно, когда мы наложили всевозможные эффекты поверх уже созданной системы меха, и это сделало мех ещё более правдоподобным по сравнению с просто сухим и милым мехом.
Maya тоже тогда была совсем новым инструментом, правда?
Роб Бредоу: Это были самые первые дни Maya. В то время в коммерческой версии ещё не было симуляции ткани. Кажется, мы стали первыми, кто использовал симулятор ткани в предрелизном состоянии. Симулятор ткани не был похож на современные, они по сравнению с ним очень мощны и стабильны. Со Стюартом возникало гораздо больше проблем, а симуляторы ткани создавали гораздо более грубые результаты со множеством шума и искажений. В Maya не было механизмов для простой фильтрации между несколькими кадрами. Но у солвера был формат кэша ткани, в который художник мог дампить симуляции на диск, и мы использовали их, загружая обратно в рендеры.
Я написал процессор кэша ткани, а также входной и выходной ноды для Houdini, чтобы можно было загружать сохранённые на диск кэши ткани, после чего разнообразными способами обрабатывать ткань в Houdini. Система Houdini Chops была довольно новой, но оказалась очень полезной, ведь мы могли загружать эти симулированные кэши в Chops, выполнять обработку сигналов, фильтровать по времени часть шума и сбрасывать дамп обратно на диск, а потом использовать его как новые входящие данные для рендера или дополнительные данные для смешивания с готовым результатом ткани.
Когда я добился того, что отфильтрованная ткань записывалась назад как новый кэш, остальная часть команды написала в Maya новый «композитор кэша». С помощью этого инструмента можно было загружать несколько кэшей и выполнять между ними смешивание. Можно было использовать результат работы солвера для одной части ткани, другой результат работы солвера — для другой части ткани.
Прежде чем мы начали работать над фильмом, мы, как мне кажется, надеялись (возможно, наивно), что после того, как настроим свойства симуляции для отдельной части одежды, то сможем просто запустить симуляцию, что это будет частью автоматизированного процесса публикации. Но оказалось, что нам потребуется целая небольшая армия художников для симуляции всей ткани во всех кадрах и её смешивания в готовый результат. Это была работа, которая делалась с любовью.
Когда я изучал белых персонажей после этого фильма, то постоянно слышал, что их рендерить сложнее всего, ведь они отражают свет и т.п. Вы когда-нибудь мечтали о том, чтобы мышь не была белой?
Роб Бредоу: Ха! Единственная проблема, которую мы пытались решить — это белая мышь. На самом деле, наша модель затенения в большей части разрабатывалась исходя из того, что мех будет белым. Позже, когда мы занялись другим фильмом, в котором была обезьяна с чёрным мехом, имеющим зеркальное и совершенно иное рассеянное отражение, наши предыдущие модели оказались всего лишь начальной точкой. Модель затенения Стюарта, в которой использовалось хакнутое освещение, зависящее от направления освещения кожи, была более точной моделью, но она хорошо подходила только для Стюарта, потому что, с теоретической точки зрения, при использовании освещения кожи это примерно аналогично отражённому освещению. Она неточна, но достаточно точна, чтобы создавать интуитивно приемлемый результат.
Я всегда думал, что при работе над «Стюартом Литтлом» в достижении «фотореалистичности» вам помогало и то, что в съёмках использовались живые кошки, то есть на экране у вас всегда был пример реального меха. Действительно ли это так?
Роб Бредоу: Совершенно верно. Джон Дайкстра очень часто просматривал отснятый материал и указывал на скопления тёмного, на места, где тени, казалось, накапливаются на мехе. Нам приходилось выдумывать способы избавляться от них. Иногда достаточно было осветлить их при композитинге, но очень часто приходилось добавлять специальное отражённое освещение или настраивать плотность теней. Это происходило тогда, когда мы всё ещё продолжали рендерить карты глубин. Это были традиционные карты глубин с одной глубиной на пиксель, не те глубокие тени, которые при необходимости создаются сегодня. Мы настраивали размытие и отклонения в картах, пытаясь избежать создания неприятных скоплений тёмного, чтобы стоящая рядом с котом мышь выглядела как можно более правдоподобной.
Ещё один аспект заключался в том, что всё это снималось на плёнку. Поэтому приходилось каждый вечер торопиться, чтобы получить готовые рендеры цифровых файлов и передать их в лабораторию в 1-2 часа ночи для их обработки. На следующий день в 10-11 часов утра мы получали готовые отпечатанные изображения.
И каждый день они получались разного цвета! Сегодня многие ностальгируют по плёнке. Но с точки зрения повседневной работы она очень неудобна — ты получаешь только по одной итерации за день, и на готовых результатах могут возникать области красного, зелёного или пурпурного цвета. Ты смотришь на белую мышь, и думаешь — так, наша белая мышь сегодня зелёная. То же самое и с котом, так это проблема рендера, или проблема печати плёнки? Иногда нам приходилось перепечатывать плёнку заново с новыми параметрами печати, чтобы быть точно уверенными, в чём проблема!
Потрясающе. Однако можно ли сказать, что из-за единовременного создания только одной итерации и долгого времени «обработки», тогда кадры воспринимались иначе? Сегодня мы можем выполнить миллион итераций, это и хорошо, и плохо, не так ли?
Роб Бредоу: То, что сегодня ты можешь повторить весь процесс за час и получить новые сведения иногда просто означает, что ты получаешь новые сведения. В то же время можно сказать, что тогда всё было намного медленнее. В Sony мы выполняли освещение в ранней версии ПО для работы с освещением Birps, которое по сути было усложнённым редактором rib (Renderman Interface Bytestream) со встроенным языком программирования. При запуске рендера отображалось окно с обратной связью, в котором можно было наблюдать за появлением отрендеренных областей.
Для «ускорения» можно было подключить к своей машине несколько подчинённых компьютеров, чтобы получать области всего за 20 или 30 или 40 минут. Несколько компьютеров работало над одним интерактивным рендером для одного кадра. Но для создания одной мыши с несколькими тысячами волосков требовалось несколько часов. Я уверен, что сегодня ту же модель освещения можно рассчитывать в реальном времени, или близко к этому.
Расскажите подробнее о Birps.
Роб Бредоу: Sprib был форматом rib студии Sony Pictures. Он позволял нам вставлять в rib-ы процедуры и скриптовый язык Sony Pictures. Sprib можно было преобразовать в файл rib, который затем можно было вставить в RenderMan (даже на лету). «Birps» означало «Sprib» наоборот. По сути, это был редактор Sprib. Позже серьёзным апгрейдом Birps для нас стала Katana.
Помните ли вы какие-нибудь заметки кого-нибудь из режиссёров или руководителей VFX-отдела про мех?
Роб Бредоу: Были комментарии о том, насколько сухим ощущался персонаж и о том, достаточно ли у него блеска. Честно говоря, большинство заметок было посвящено простейшему освещению, о котором мы сегодня даже не думаем. Например, Джон Дайкстра часто указывал на скопления темноты там, где тени выглядели так, как будто накапливаются неправильно. Было много обсуждений деталей теней. Детали теней редко падали с волос на волосы, и когда такое происходило, часто возникали артефакты. Чтобы получить правильные детали, приходилось идти на компромиссы.
Было много обсуждений того, как получить нужное количество деталей мыши, избегать скоплений темноты, и, разумеется, о том, как добиться того, чтобы мышь выглядела отлично. Мы снимали в сценах хромированные и серые сферы для создания референсов, они были важны для интеграции мыши в сцену, чтобы она при этом выглядела как звезда фильма. Оператор-постановщик дал нам хорошую отправную точку, он иногда освещал небольшие объекты, но также освещал остальную сцену и живых актёров.
Помню, что Джон Дайкстра часто просил нас усилить контурное освещение Стюарта, чтобы он выглядел очаровательным, как звезда фильма.
На веб-сайте Роба Бредоу хранятся заметки о рендеринге меха Стюарта Литтла available, а PDF заметок для курса «Advanced RenderMan 2: To RI INFINITY and Beyond» с SIGGRAPH 2000 можно скачать отсюда.
Автор: PatientZero