Компьютерная графика и визуальные эффекты не такое новое явление, как о нём принято думать. Спецэффекты в кино возникли практически одновременно с появлением кинематографа, и пока наш разум отчаянно отказывается осознавать, насколько глубока кроличья нора, где-то громко смеётся один Жорж Мельес. Очевидно, что с появлением вычислительной техники расширение арсенала художников было лишь вопросом времени. Тем не менее, компьютерной графике пришлось преодолеть долгий путь, по некоторым этапам которого было бы интересно пройтись.
Прибытие кошечки
Сладкая кукуруза, Карибский кризис, сексуальная революция, Берлинская стена, Второй Ватиканский собор и, конечно же, покорение космоса ‑ шестидесятые годы прошлого века оказались богаты на события. На фоне этого буйства остались незамеченными математики с горящими глазами, проводившие где-то в недрах университетских машинных залов первые эксперименты с компьютерной графикой. Одним из них стал Николай Николаевич Константинов. На создание мультфильма его вдохновила работа бывшего студента – анимация движения молекулы ДНК из пластилина, и спустя несколько месяцев работы в 1968 году по экрану скромно прошлась «Кошечка».
«Кошечка» не была первым компьютерным мультфильмом, однако она стала первым реалистично анимированным при помощи компьютера персонажем.
На всякий случай напомню, что до современных микросхем с неприлично большой степенью интеграции оставались десятки лет развития, и вообще твердотельная логика начнёт захватывать мир чуть позже. Элементная база в основном состояла из радиоламп и памяти на магнитных сердечниках.
В БЭСМ-4, на которой создавалась «Кошечка» было несколько модулей памяти общей ёмкостью 16К 45-разрядных слов. Результаты работы программ печатались на рулонной бумаге суровым агрегатом под названием АЦПУ-128, так что ни о какой графике речи не шло. Полагать, что в конце 60-х существовали какие-либо графические пакеты, тоже было бы слишком наивно – учёные сами писали нужные им программы. Через 6 лет Константинов и соавторы (Владимир Пономаренко, Виктор Минахин) опубликуют в журнале «Проблемы кибернетики» статью, из которой можно узнать много интересных подробностей: представление чисел, описание структур данных, вывод уравнений, описывающих движение.
Как и многие другие ранние эксперименты, смелая идея в своё время не нашла отклика, и снова про кошечку вспомнят лишь почти сорок лет спустя стараниями учеников и сторонников Константинова.
Наследие «Трона»
Мы были в восторге от backlit-анимации. Свет не отражается от рисунка на целлулоиде, а попадает прямо в объектив камеры сквозь маску и светофильтр, и получается очень насыщенный, приятный глазу цвет. [Тогда] никто не делал backlit-персонажей. Эту технику применяли для логотипов, чтобы заставить предметы светиться и пульсировать. Мы же попытались создать такого персонажа… Этот тест, он был из текучего неона, он был электронным. И раз он был электронным, мы прозвали его Трон.
Стивен Лисбергер, режиссёр
О «Троне», наверное, не говорил только самый ленивый, но не упомянуть его тоже нельзя. Я бы мог долго рассказывать о Стивене Лисбергере, аниматоре, которого завораживали неон и эстетика первых аркадных автоматов, и его идее создать светящегося электронного персонажа. О том, как в дело вмешалась политика ‑ его студия чуть не закрылась из-за бойкота Олимпийских игр, и как в попытках остаться на плаву команда вернулась к старой задумке. Можно долго рассказывать о том, насколько новым тогда казался этот наивный сюжет, как в Disney изголодались по свежим идеям, и как они в конце-концов нашли друг друга.
Остановимся на самом главном. Картина Лисбергера не была первым художественным фильмом, в котором для создания визуальных эффектов применялась машинная графика. До «Трона» как минимум были «Мир запада» и «Мир будущего» (1973 и 1976 соответственно), «Звёздные войны» (1977) и второй полнометражный Star Trek (1982), однако именно в «Троне» визуальные эффекты сыграли решающую роль.
Если в уже набивших оскомину «Звёздных войнах» единственная сцена, в которой использовалась машинная графика, длится примерно полторы минуты, то «Трон» содержит около 15 минут чистой графики, не учитывая сцен, где актёры наложены на нарисованный машиной фон.
Над графикой для разных частей ленты независимо друг от друга трудились 4 фирмы, что в результате отразилось на визуальном стиле картины. Обычно, когда речь заходит о «Троне», в первую очередь вспоминают Triple-I и её супер-ЭВМ (совместимый с PDP-10 Foonly F1), а также MAGI/Synthavision. Две эти компании создали большую часть визуальных эффектов, но лично моё внимание привлекла другая – Robert Abel and Associates. Работавший над фильмом сотрудник Абеля по имени Билл Ковакс через два года станет одним из основателей Wavefront Technologies, крупного разработчика графического ПО.
Что такое Silicon Graphics
Человек – Идея – Венчурный фонд – Признание – Головокружение от успеха – Закат. Это если совсем кратко. В 70-х годах Джеймс Кларк, будучи профессором Стэнфордского университета, вместе с Марком Ханной начал работу над Geometry Engine ‑ набором микросхем, призванным взять на себя обработку трёхмерной графики. Демонстрация разработки на выставке SIGGRAPH позволила привлечь необходимое финансирование, и в 1982 году рождается Silicon Graphics с приставкой Inc.
Чтобы понять, чем так интересны эти машины, мысленно вернёмся в 1992 год. За 386-й компьютер в конце 92-го просили около $1300 (на момент написания статьи эта сумма примерно соответствует $2300 или 170 000 рублей). Максимум своих возможностей чудо-машина обычно демонстрировала в играх вроде Doom или «Седьмого гостя». Последний выпускался аж на двух компакт-дисках ‑ извольте потратить ещё долларов 300 на привод, если жаждете прикоснуться к прекрасному.
Apple стагнирует вплоть до возвращения Джобса, менее дорогие «Макинтоши» конкурируют с «Макинтошами» подороже, что в будущем выльется в несколько линеек примерно одинаковых машин, но в разных ценовых диапазонах. Одно из самых доступных предложений ‑ Macintosh LC II, производительность сопоставима с персоналками.
Найти цены SPARCstation от Sun уже сложнее, но готов поспорить, что было дорого — как-никак кровавый enterprise. Сейчас нам важен тот факт, что в части этих машин в принципе не было аппаратной поддержки графики. К этому моменту за 10 лет своего развития аппараты SGI прошли путь от графических терминалов до производительных рабочих станций, способных выводить трёхмерную графику в реальном времени, что привлекло киностудии.
Конкретно это демо было записано в 1996 году, но оно очень хорошо передаёт суть, да и компьютеры Onyx были выпущены в 93-м. После выхода таких картин как «Бездна» (1989) или «Терминатор 2» (1991) слова Silicon Graphics и «визуальные эффекты» фактически стали синонимами. Космические возможности, однако, стоили космических денег. Компьютер Indigo 2 в минимальной комплектации (MIPS R4000, 100 МГц) обошёлся бы в $25 000 ($45 000 или 3 330 000 рублей сейчас), и это далеко не предел. При этом крупные клиенты вроде Industrial Light & Magic нуждались во всё более производительных решениях – деньги лились рекой. Так, между делом, в том же 1992 году SGI приобретает себе MIPS.
И тут как гром среди ясного неба разносится известие об уходе самого Кларка. Совет директоров не был согласен с его идеями привнести разработки компании на рынок потребительской электроники. С руководством кроме Кларка конфликтовали и другие инженеры, что вылилось в основание такой никому не известной конторы как 3dfx или уход части сотрудников в ещё более неизвестную ATI.
По иронии судьбы изначально «игрушечные» персоналки развивались семимильными шагами, не без помощи вышеупомянутых контор (а там ещё nVidia подтянется), и признанный лидер недооценил это обстоятельство. С 1997 года компания начинает терпеть убытки. Ещё два года назад бывшая на пике своего развития она больше неспособна вести конкурентную борьбу с Intel-совместимыми системами. Масла в огонь подлили разработчики ПО, которые портировали свои графические пакеты на Windows NT и другие платформы, когда дело запахло жареным. В 2006 году несмотря на отчаянные попытки выжить Silicon Graphics объявляет о своём банкротстве и окончательно перестаёт существовать к 2009 году – остатки компании распроданы, а вырученные средства уходят на выплаты кредиторам.
Несмотря на печальный конец, наследие Silicon Graphics продолжает жить. В 1995 году под крышей SGI произошло слияние Alias Research и Wavefront Technologies, из прежних наработок которых родилась Maya – среда, фактически ставшая промышленным стандартом (и с которой я совершенно не умею работать). На этой же платформе родился такой графический пакет как Houdini – жив, используется как одиночками, так и гигантами вроде Pixar.
Без упоминания в художественных произведениях тоже не обошлось:
Аппаратный зал, находившийся за дверью с игривой надписью «Машинное отделение», не произвёл на Татарского особого впечатления… Никакой мебели в комнате не было; на одной стене висела цветная фотография Гагарина с голубем в руках, а у другой стояли металлические стеллажи со множеством однообразных синих ящиков, единственным украшением которых была похожая на снежинку эмблема Silicon Graphics.
Виктор Пелевин, «Generation П»
Но если «Generation П» вещь довольно специфичная, то с этим камео вы точно знакомы:
Бесконечность не предел
Для работы над «Звёздными войнами» Джорджу Лукасу требовалась студия, которая будет заниматься визуальными эффектами, ради чего в 1975 году режиссёр создаёт упомянутую ранее Industrial Light & Magic – грядущего титана; наверное будет проще сказать, над чем они не работали.
В процессе развития в студии возникло подразделение, которое занималось компьютерной графикой. Лукас нанял несколько специалистов, среди которых были Элви Рэй Смит и Эдвин Катмулл, возглавившие новообразованную Graphics Group. Стараниями Катмулла в свою очередь будет нанят ведущий аниматор – Джон Лассетер. Троица Смит-Катмулл-Лассетер лелеяла амбициозную мечту – ни много, ни мало, снять первый полнометражный фильм, целиком нарисованный на компьютере.
В 1983 году в связи с финансовыми трудностями Лукас начал в срочном порядке избавляться от активов, в т.ч. и от Graphics Group. Смит, Катмулл и Лассетер, помня о своих планах, попытаются сохранить сформировавшуюся команду и в 1986-м решают самостоятельно выкупить подразделение. Инвестором и по совместительству главным акционером стал… Ни за что не поверите – Стив Джобс, тогда уже уволенный из Apple. Новая независимая компания стала называться Pixar.
Катмулл, Лассетер и ко считали Джобса «своим», однако вопреки ожиданиям и сложившейся репутации он окажется жёстким авторитарным руководителем – выключить солнце, забыть про анимацию, сосредоточиться на железках, которые можно продать! Ради справедливости стоит отметить, что такой подход мог быть оправдан. Лукас хотел начать активно применять графику ещё в Empire Strikes Back (1980), но отказался от этой затеи, т.к. несмотря на огромный потенциал производительность вычислительных машин долго оставляла желать лучшего и получить результат требуемого качества было нереально. Анимационные короткометражки были лишь побочным продуктом, призванным рекламировать решения Pixar. Продажа оборудования не приносила достаточного дохода и компания работала в убыток. Весной 1988 года Джобс поднимает вопрос о значительном сокращении расходов, возможно, вместе с частью сотрудников. Катмуллу и Лассетеру удаётся убедить его выделить средства на ещё один короткометражный мультфильм из собственных активов. «Оловянная игрушка», ради которой аниматоры буквально ночевали на рабочих местах, завоевала «Оскара», привлекла к себе внимание Disney и, самое главное, сдружила Джобса с Лассетером.
Студия меняет курс и продаёт своё аппаратное подразделение, сконцентрировавшись на анимационном производстве и RenderMan, своём главном программном продукте. В мае 1991-го студия, находясь на грани банкротства, заключает соглашение с Disney о совместном производстве полнометражного мультфильма, сейчас известного нам как «История Игрушек».
Джери, Катмулл и Кларк
Исторически сложилось так, что первые трёхмерные модели были полигональными – они состояли из множества многоугольников различной конфигурации, которые принято называть полигонами. Так можно получить сложные и хорошо детализированные формы, но такие поверхности никогда не будут гладкими ‑ сколько бы полигонов у вас ни было, ваша модель остаётся многогранником. Тогда учёные и инженеры притащили в системы автоматизированного проектирования параметрические сплайновые поверхности (наибольшее распространение получили NURBS). Кроме гладкости они имели кучу других достоинств, например, их можно как угодно резать, между такими поверхностями можно легко создавать гладкие сопряжения, а ещё они кушают меньше ресурсов.
У этого чуда есть одно ограничение – моделируемый объект не может иметь произвольную топологию, т.е. нельзя представить произвольную форму одной такой поверхностью. Сложные модели приходится буквально сшивать из нескольких лоскутов.
Казалось бы, ничего страшного, но это усложняет правки, а при анимации возникает необходимость следить за тем, чтобы швы не разъехались, и оберегать их от перегибов. При работе над «Историей игрушек» аниматоры приложили немало усилий, чтобы скрыть швы на лице Вуди. В 1976 году уже знакомые нам Катмулл и Кларк нашли изящное решение проблемы. Вернёмся к полигонам. Давайте возьмём какой-нибудь объект и разделим каждую его грань на несколько полигонов поменьше, а затем усредним положение старых вершин. Повторим ещё раз. И ещё! Они доказали, что итерационный процесс сходится, результатом будет гладкая поверхность – такая же, как набор гладко сшитых лоскутов, о которых говорилось раньше, только единое целое.
Первым анимационным фильмом с применением сабдивов стала короткометражка «Игра Джери» 1997 года – быстрые методы их вычисления появились далеко не сразу.
The Spirits Within
В 1987 году тогда ещё малоизвестная студия Square испытывала серьёзные финансовые трудности. Первые игры японцев не снискали популярности у игроков и находящаяся в разработке Final Fantasy в прямом смысле могла стать final, но вместо этого её ждал успех. Вслед за ней из-под пера Square выйдет немало хитов (от номерных частей Final Fantasy до Chrono Trigger и Parasite Eve), однако японцы не захотели останавливаться на достигнутом.
В июле 2001 года Square Pictures выпускает на экраны без преувеличения прорывной полнометражный мультфильм. «Последняя фантазия» (в нашем прокате просто, без «духов внутри») первой в истории использует фотореалистичные образы людей, для анимации которых применялся захват движений живых актёров.
Вскоре после премьеры некоторые актёры, например Том Хэнкс, высказали опасения насчёт того, что их и их коллег вскоре заменят компьютерными моделями, а СМИ разразились жёлтыми заголовками (как минимум New York Times). Стоит отметить, что планы создателей действительно шли далеко вперёд: как вам концепция виртуальной актрисы и её взаимодействия с отснятым материалом? Забегая вперёд скажу, что они не сбылись, однако на Аки Росс в реальности можно посмотреть тут (первая минута):
Качественный прорыв обошёлся дорого. Просто приведу слова Троя Брукса, одного из руководителей проекта:
Лично мне кажется, что самой большой проблемой было общение. У нас работали художники более чем из 20 стран и большая часть первоначальной команды пришла из японской Square games. Не все из них говорили по-английски и совсем мало не японцев говорили по-японски – у нас был большой штат переводчиков. Кроме того, с нами работали люди из области разработки игр, спецэффектов, анимации, телевидения, рекламы – с самым разным опытом. Думаю, что фильм только выиграл от такого разнообразия, но организовать хотя бы повседневное общение было далеко не тривиальной задачей.
В том же интервью раскрываются и некоторые технические подробности: рабочие станции художников и аниматоров – SGI Octane, композитинг и монтаж – SGI Onyx. Моделирование и анимация производились в Maya, рендеринг – Pixar RenderMan (Pentium 3, RedHat 6.2).
Подводя итоги: 4 года производства, 120 человеко-лет, 1200 компьютеров (рендер-ферма, без учёта рабочих станций), 24 года машинного времени и соответствующие всему этому великолепию $137 млн. бюджета. При кассовых сборах чуть более $85 млн. – Square Pictures ждало неминуемое банкротство, хотя сама Square переживёт эту неудачу. Коммерческому провалу могли поспособствовать некоторые обстоятельства:
Во-первых, название Final Fantasy явно говорило о связи с одноимённой серией игр, сужая аудиторию; масла в огонь подливал тот факт, что автором сценария и режиссёром выступил Хиронобу Сакагути – создатель оригинальной игры. При этом сам фильм не связан с какими-либо играми серии, если не считать отсылок вроде учёного по имени Сид или едва заметного силуэта ездовой птицы на пижаме главной героини.
За красивой картинкой прятался слабый сценарий с флёром «Рен-ТВ». С другой стороны, концепцию живой планеты или что-то очень на неё похожее использовали в художественных произведениях задолго до «Духов внутри» (привет, Конан Дойл), и будут использовать после (привет, Кэмерон).
Субъективное мнение, которое можно смело пропустить
В отличие от других провалившихся проектов, за Final Fantasy почему-то особенно обидно и из головы не уходит мысль о том, что этот мультфильм сильно недооценили. В 2017 году сбылась мечта идиота – я попал на московский CG Event. В своей речи на открытии конференции Сергей Цыпцын сравнил «Духов внутри» с короткометражным фильмом Adam – теперь картинку аналогичного качества можно получать практически в реальном времени. Первый докладчик как раз был из Unity Technologies.
Не мне спорить с известными специалистами, однако соглашусь лишь частично: Adam безусловно хорош, но он про роботов. После «Фантазии» в принципе было немного анимационных фильмов в реалистичной стилистике, и ни одному из них не удалось превзойти первопроходца. Из полнометражных можно вспомнить три работы Земекиса и «Тайну Единорога» Спилберга по альбомам Эрже, но её можно сразу отбросить.
Если вы всё ещё не забыли про Тома Хэнкса, то через 3 года он примет участие в похожем проекте, а именно «Полярном экспрессе» Роберта Земекиса, где отыграет и озвучит сразу несколько ролей.
Ирония в том, что три года спустя и при большем бюджете ($165 млн., сборы – $306 млн.) картина окажется заметно слабее как минимум в техническом плане, но хотя бы окупит производство.
Трассировка лучей и полный метр
Каждый пиксель – всего лишь цвет, но чтобы найти этот цвет, нужно осмотреть целый мир.
Роберт Кук, один из создателей Pixar RenderMan
Упомянутые чуть раньше полигоны, сабдивы и прочие страшные слова, очевидно, не являются самоцелью. Чтобы увидеть описанные с их помощью структуру, объём и форму, их нужно как-то превратить в набор точек на экране. К решению этой задачи существует несколько принципиально разных подходов; наиболее известные – растеризация и трассировка лучей.
О растеризации будет вернее сказать, что это множество техник, в основе которых лежит общая идея. Каждая поверхность делится на примитивы (например, каждый полигон можно разделить на несколько треугольников, а сплайновые поверхности аппроксимируются сеткой из полигонов), мы находим их проекцию на экран, а затем перебираем все пиксели изображения и проверяем, лежат ли они внутри какого-либо примитива. Если так, мы закрашиваем пиксель цветом примитива, внутри которого он лежит.
Некоторые рендеры, например Mantra или пиксаровский RenderMan, доминировавшая на рынке система, использовали аналогичную технику, но наоборот. Поверхности дробились на полигоны сопоставимых с пикселями размеров, а цвет пикселя определялся тем, какие полигоны в него попадают. На практике в любом случае процесс обычно состоит из заметно большего числа стадий, в т.ч. программируемых, таких как расчёт освещения.
Альтернативный подход заключается в том, чтобы отследить путь попавших в виртуальную камеру лучей света. Впервые эту технику, сейчас известную нам как обратная трассировка лучей, продемонстрировали в лабораториях Белла в далёком 1979 году. Найти эту короткометражку (Compleat Angler) целиком непросто, однако этот шестисекундный фрагмент даёт неплохое представление. Редактор упорно игнорирует якорь в ссылке, смотреть с 2:59:
Кратко процесс можно описать следующим образом: через каждый пиксель изображения проводится луч и находится точка его пересечения с поверхностью. Из неё в свою очередь выпускается т.н. теневой луч в сторону источника света. Если луч не достигает источника, то точка находится в тени, иначе для неё рассчитывается освещение, освещение от всех источников складывается. Если поверхность должна отражать или преломлять свет, то из всё той же точки выпускаются новые лучи и процесс повторяется рекурсивно.
Этого недостаточно для получения реалистичных изображений, однако у нас уже есть тени, зеркальные отражения и преломления, которые в противном случае рассчитываются по отдельности. Усовершенствованные варианты техники идут дальше: мягкие тени, глянцевые отражения, глубина резкости и многое другое.
Апофеозом стал расчёт глобального освещения. Чтобы лучше понять, о чём идёт речь, попробуйте подставить лист бумаги под солнечный луч, или просто взгляните на иллюстрацию:
«Честно» достичь такого результата «классическими» методами не получится. Распространённая практика – добавить в сцену дополнительные источники света, количество которых стремительно растёт.
Несмотря на все свои достоинства, трассировка лучей долгое время считалась пусть и интересной, но практически бесполезной техникой – за реализм придётся заплатить вычислительной сложностью. Написать трассировщик несложно, сложно написать эффективный трассировщик, который выдаст результат за адекватное время. Балом правят растеризаторы: мы вынуждены собирать воедино кучу малосвязанных друг с другом техник, и мириться с очень приблизительным результатом, но этот результат будет и он будет быстрым, вплоть до работы в реальном времени. Яркий пример – всё те же игры, как современные, так и не очень. Тем не менее, со временем производительность компьютеров росла, вместе с ней росли и требования к качеству. Значительные перемены оставались вопросом времени.
В 1998 году Маркос Фахардо напишет Arnold, шутки ради названный так в честь бывшего губернатора Калифорнии. Для своего времени замысел был довольно смелым: освещение в каждой точке рассчитывается методом Монте-Карло, эту технику называют трассировкой пути. Для нас это означает максимальное стремление к физической корректности и повышенный аппетит программы к вычислительным ресурсам. Дебютом системы стали несколько короткометражных мультфильмов, после которых в 2004 году на новичка своё внимание обратит Sony Imageworks. Студия включается в процесс разработки и делает Arnold своим основным инструментом. Первым полнометражным анимационным фильмом, полностью отрендеренным с его помощью методом трассировки пути становится «Дом-монстр» 2006 года, что бы там ни говорили в Pixar. Они в свою очередь не спешат отказываться от старых наработок, но в том же году добавляют в свой RenderMan поддержку трассировки лучей и активно используют новые инструменты. 10 лет спустя Pixar полностью откажется от старой архитектуры в пользу трассировки пути.
На арену выходит болгарский V-Ray, за последние 10 лет проделавший колоссальный путь от дизайна интерьеров и рекламы к высокобюджетным фильмам. И похоже, останавливаться он не собирается.