Лучше, чем жизнь
Традиционно самыми ресурсоемкими считались спецэффекты для кино – все эти взрывы, цунами, годзиллы, динозавры и прочие твари Юрского периода. Казалось бы, закон Мура работает, компьютеры становятся в сотни раз мощнее, и жизнь тружеников графики должна налаживаться. Но нет. Режиссеры хотят все более крутых взрывов, массовых разрушений страшных тварей, причем в огромных количествах. В противовес закону Мура есть закон Джима Блинна: время просчета одного кадра графики для кино не зависит от технического оснащения студии – оно определяется сроками сдачи проекта. Если, например, время рендеринга кадра превысит 10 минут, то весь материал не успеет просчитаться. Проще говоря, чтобы обработать всю красоту, железа всегда будет мало (сколько бы его ни было): графика всегда слишком сложная, и это всегда компромисс между замыслом и дедлайном. Поэтому каждый год эффекты становятся все сложнее и, скажем так, выразительнее. Например, в последней «Истории игрушек» были кадры с шестью миллиардами листьев и триллионом сосновых иголок.
С другой стороны, есть компьютерные игры, где один кадр должен отрисовываться на экране за определенную долю секунды и быть результатом компромисса между качеством и скоростью просчета. Прогресс в этой области делал картинки все красивее, сочнее и убойнее. И пока кино неторопливо, сутками считало своих динозавров в аду, игры научились выжимать максимум из нового железа и алгоритмов и стали выдавать картинку, которая по качеству подбирается к киноэффектам не такого уж далекого прошлого. По 60 кадров в секунду.
В конце 1990-х мы с коллегами решили выяснить, когда же можно будет считать кино в реальном времени. Взяли за основу время расчета текущего кадра на станции Silicon Graphiсs (за 40 тыс. долл.), 24 кадра в секунду и закон Мура, гласивший, что время расчета будет сокращаться в два раза каждые полтора года. Вышло, что через 40 лет. Про закон Блинна мы тогда еще не знали.
Сейчас картинка на игровом движке с лучшим качеством крутится на компьютере, который можно купить в магазине за 1000 долл. А кино и дальше останется консервативной областью, где инструменты и подходы меняются довольно медленно. Индивидуальный пошив кадров на все времена. Неторопливый, дорогой, солидный.
Игры
Виртуальное производство
Но игры дарят миру компьютерной графики массу новых технологий, и об одной из них просто необходимо упомянуть. Это виртуальное производство, Virtual Production – возможность снимать кино на игровом движке. Построить виртуальный игровой мир, поместить туда персонажей и отснять виртуальной камерой. Примерно так делали последнего «Короля Льва»: режиссер и оператор сидели в шлемах виртуальной реальности, выбирали ракурсы, ставили свет, руководили движением камеры. Самое забавное, что реальных камер не было, но были настоящие рельсы, краны и штативы, на которых стояли болванки, передававшие свои координаты в игровой движок. Зачем? В мире кино нет людей, которые умеют двигать камеру мышкой или клавишами, но есть дольщики и крановщики. И чтобы получить «киношное» перемещение камеры, надо монтировать все это хозяйство с единственной целью – записать траекторию камеры и передать ее в игровой движок. Когда кино «снято», то есть вся анимация камер получена, материал может быть пересчитан со сколь угодно хорошим качеством, другим светом, текстурами и прочими украшениями. Можно даже поменять персонажей. Экономия огромная: никаких экспедиций, ожидания солнца в режиме и постройки декораций.
А что если снимать надо реальных людей, но в виртуальных декорациях? Тогда на помощь приходят павильоны с огромными экранами вместо стен. На стены проецируется окружение (отснятый материал или виртуальное пространство), которое удачно отражается на актерах и декорациях и попадает в кадр как «реальный» мир. Актеры играют не на «зеленке», чувствуют контекст, совмещать потом ничего не нужно. Именно так снимали «Мандалорца».
А вот вся остальная часть компьютерной графики нереально ускоряется. Ибо спрос на визуальный контент растет катастрофическими темпами: «картинка» вырвалась за границы кино и телевидения и стремительно распространяется по планете через всевозможные альтернативные экраны – смартфоны, мониторы, проекционные панели, VR-шлемы. И тут самое время поговорить об инструментах для производства компьютерной графики и о том, какие тренды сейчас выходят на первый план.
Ручная работа
Инструменты для производства 3D-графики остаются вызывающе старыми. Основные пакеты типа Maya, Houdini, 3ds Max, Cinema 4D созданы еще в прошлом веке. Они исповедуют размеренный неторопливый пайплайн. Моделирование, анимация, эффекты, рендер. Иногда появляются новички типа Notch, заточенные под производство, например, «быстрой» графики для виджеинга или интерактивных событий. Но в целом картина не меняется. Меняются скорее тренды производства.
Ассетное мышление
Это умное словосочетание обозначает переиспользование моделей и вообще любых производственных материалов. Цифровых ассетов становится все больше, они накапливаются за годы выпуска. Растут и магазины 3D-моделей, стоковых фотографий и видео. Мир стремительно насыщается визуальным контентом, который можно пускать в дело снова и снова. То же относится и к анимации. Пример систем захвата движений (motion capture) показывает, что движение может быть отделено от персонажа и существовать в виде библиотек, то есть ассетов, которые легко использовать повторно. Если раньше моделирование и анимация делались в основном вручную, то сейчас сцены все чаще собирают из готовых блоков с последующим «допиливанием». Это тоже в какой-то мере влияние индустрии разработки игр.
Оцифровка всего
Появление хороших камер в телефонах резко демократизировало такую область, как фотограмметрия, когда можно сделать несколько снимков объекта с разных ракурсов, а потом с помощью умного алгоритма сгенерить по ним трехмерную модель. Появление сенсоров ToF и лидаров в мобильных устройствах еще больше ускорило процесс. Не остался в стороне и ИИ, который способен восстановить 3Dмодель по одной (!) фотографии – правда, не для всех классов объектов. Прогресс налицо, а вместе с ним и лавинообразное увеличение количества моделей (ассетов) в цифровом мире и то самое ассетное мышление.
Все в облако
Облачные технологии проникают в компьютерную графику не так быстро: исходные материалы здесь идут под жесточайшими договорами о неразглашении (NDA), и никто не торопится загружать их в облако. Однако концепция «студии в облаке» настойчиво проталкивается производителями программного обеспечения и железа. Можно арендовать сколько угодно рабочих станций на Amazon (AWS) и трудиться удаленно. Можно считать кадры на облачных рендерфермах без необходимости держать тонны оборудования в студии или дома. Пользователи Adobe, например, имеют возможность совместно редактировать изображения в облаке. Наиболее интересный концепт – решение Omniverse от NVIDIA: в облаке существует трехмерная сцена, которая поддерживает совместное редактирование из любой точки планеты и с помощью разных 3Dпакетов. Сцена на лету конвертируется в общий формат USD, при этом она одинаково отображается у всех пользователей, где бы они ни находились и какое бы программное обеспечение (Maya, Houdini, Blender) ни использовали. Своеобразное совместное прохождение трехмерных уровней с целью создания контента.
Искусственный интеллект
Под искусственным интеллектом здесь имеется в виду «слабый ИИ» – те самые нейросети. Производство графики – процесс тяжелый, медленный и часто ручной, поэтому любое ускорение обречено на успех. Перед ИИ тут открываются потрясающие перспективы: он умеет вытаскивать из картинки (и видео) очень много информации, которую можно использовать для ускорения производства. ИИ научился отделять предметы от фона (ротоскопинг), вычленять информацию о глубине (расстоянии от камеры до объектов), распознавать лица и выделять их ключевые элементы (глаза, нос, брови и т.д.), делать захват движения по видео, снятому на телефон (прощайте, системы motion cap ture за 20 тыс. долл.), строить скелет человека по видеозаписи. Все это используется в производстве графики и позволяет автоматизировать многие этапы ручной работы.
Еще один пример – «разгон» разрешения и улучшение изображений. Специально обученные нейросети способны повышать разрешение изображений и видео с качеством, превосходящим традиционные алгоритмы. Их долго обучали на парах «плохая копия – хорошая копия» одной и той же картинки, и теперь нейросеть может автоматически улучшать материал, причем очень быстро. Более того, технология DLSS от той же NVIDIA умеет увеличивать разрешение на лету, прямо во время игры. Это позволяет игровому движку считать картинку в низком разрешении (то есть в несколько раз быстрее), а показывать ее – в высоком. Похожий принцип используется и при ускорении просчета в рендерах типа V-Ray: там ИИ убирает шум из картинки на последнем этапе, резко сокращая время обработки. О реставрации, раскраске и улучшении архивных фото- и видеозаписей с помощью ИИ можно даже не упоминать: они уже стали стандартом.