Компьютерра - Журнал «Компьютерра» №1-2 за 2006 год
Настоящим прорывом в комбинированных съемках стало появление технологии так называемого хромакея (Chromo Key). При этом сцена снимается на одноцветном фоне, обычно на зеленом или синем. После чего вместо этого цвета можно подставить любой другой видеофрагмент. Эта технология была очень тепло принята телекомпаниями, для создания виртуальных студий. Теперь студию новостей можно было заменить комнатой с однотонными стенами, а зритель при этом мог видеть что угодно: хоть футуристический, хоть классический интерьер; ведущих можно даже «перенести» на лесную лужайку. В кино данный метод применяется для создания как виртуального фона, так и некоторых других эффектов. Например, если движение и оптические параметры камеры, снимающей фон и персонажей сцены, будут полностью аналогичны, то можно вживить персонажей на этот фон, при этом камера будет двигаться, что позволяет получить более зрелищные кадры.
Часть съемок фильма «Есенин» проводилась на обычной московской улице. Соответственно в кадр попадало много лишнего: современные дома, провода и антенны. И если подтереть все лишнее в тех частях кадра, где нет движения, не составляет никаких проблем, то области, в которых находятся актеры, могли вызвать трудности. Была возведена специальная стена зеленого цвета, впоследствии замененная компьютерным рисованным задником.
Если развить эту идею, то становится понятно, что финальная картинка в кинематографе может состоять не только из двух слоев, но и из большего количества. Например, при формировании сцены штурма крепости стены крепости, поле боя перед укреплениями, актеры и небо могут быть сняты в совершенно разных местах или даже нарисованы на компьютере. Совмещение различных видеопоследовательностей называется композингом (Compositing). Простейший случай композинга мы каждый день видим в новостях с сурдопереводом, где кадры из одной студии накладываются на кадры из другой.
Но в кинематографе применяются куда более сложные эффекты. Например, из кадров с полем, по которому скачут два всадника, можно сделать сцену с несколькими десятками людей на конях. И зритель даже не заметит сходства между всадниками. Этот способ особенно хорош для батальных сцен, ведь в большинстве армий мира солдаты одеты в одинаковую форму. Но если всех конников сделать последовательным смещением, то они будут двигаться «в ногу», что наверняка вызовет у зрителя недоверие. Чтобы этого не произошло, каждую отдельно взятую фигуру накладывают со смещением, то есть одна лошадь начинает бежать с правой ноги, а соседняя будет повторять ее движения с некоторой задержкой. Но иногда и этого бывает недостаточно, тогда можно даже слепить одну лошадь из двух других: так, в фильме «72 метра» некоторые чайки были слеплены из трех частей – голова от одной, а туловище и ноги от двух других.
Но даже в идеальной армии все солдаты не могут выглядеть абсолютно одинаково. Возникает необходимость как-то разнообразить персонажей. На них можно накладывать цветокоррекционные фильтры, изменять их размер и пропорции и, как уже было сказано, составлять одно целое из частей разных персонажей. Для этого чаще всего используется метод 2D-трекинга. При этом программа отслеживает положение какой-то заданной на одном кадре точки во всех остальных кадрах последовательности. После чего к координатам точки можно «привязывать» различные объекты, будь то шапка кавалериста или же половина чайки. Только в одном случае шапка «привязывается» к какой-то выразительной точке на голове человека, а в другом – к углу обрезанного тела чайки.
Для того чтобы на отснятый городской пейзаж добавить рекламный плакат, висящий на стене дома, необходимо «протрекать» (получить последовательность координат точки на каждом кадре) точки, соответствующие тем углам дома, за которые будет крепиться плакат, и просто как четырехугольник по четырем углам прикрепить картинку с плакатом. Степень достоверности сцены зависит лишь от мастерства художника. Но при изменении положения камеры освещение может меняться, а так как наш плакат остается двухмерным, то имитировать правильное освещение – достаточно непростая задача. Что при работе с трехмерными объектами перестает быть столь большой проблемой.
Встает проблема совмещения трехмерной и двухмерной информации. Чаще всего приходится работать в трех направления: вживлять 3D-персонажей в отснятый фон (возможно, с актерами), переносить изображения с актерами в 3D-декорации и изменять внешний вида актера при помощи 3D-объектов.
Две видеопоследовательности снимаются разными по своей природе камерами – реальной и виртуальной. Если камера неподвижна, то первых двух проблем не возникает – достаточно лишь подобрать свет и положение камер. Но если нам нужна сцена с пролетом камеры, то обе камеры должны двигаться идентично. Для виртуальной камеры мы всегда точно знаем ее параметры и траекторию движения, ведь они задаются цифрами. А для материалов, отснятых настоящей кинокамерой, обычно известно только фокусное расстояние объектива, да и то если информация не потеряна после съемок.
Конечно, можно перемещать камеру в пространстве по строго определенному закону, но для этого потребуется специальный дорогостоящий робот. Гораздо проще восстановить параметры камеры и способ ее движения по уже отснятому материалу. Метод для восстановления параметров и движений камеры называется мачмувингом. Метод основан на принципах проективной геометрии. Понятно, что если точки на трехмерной сцене, которую мы снимаем камерой, неподвижны друг относительно друга, то они не могут двигаться на видео независимо друг относительно друга.
Входными данными для алгоритмов восстановления параметров камеры являются последовательности координат некоторых точек на каждом кадре. Эти точки могут выбираться программой автоматически – например, как самые яркие или как содержащие пересечение выделяющихся линий (уголки), но более точный результат обычно получается, если они заданы вручную. Человек указывает некоторые точки на одном кадре, после чего программа сама следит за их перемещением и находит их координаты на всех остальных кадрах, если, конечно эти точки все еще видны на них.
Далее при помощи различных математических моделей восстанавливается траектория камеры и трехмерные координаты тех точек, что были использованы в качестве входных данных. Например, для ролика, снятого в комнате, в качестве опорных точек можно выбрать углы стола и комнаты, или яркие колпачки на авторучках, а также другие мелкие хорошо видимые предметы. Результаты работы программы можно импортировать в 3D-редактор, для каждой опорной точки будет создан маркер, а камера будет полностью соответствовать той с помощью, которой был снят исходный ролик. Теперь, чтобы положить на стол новый предмет, надо провести воображаемую плоскость между точками, соответствующими углам стола, и на ней разместить 3D-объект. Если наложить на исходный клип изображение, полученное виртуальной камерой, то вживленный предмет будет выглядеть неподвижным относительно стола, как будто он там просто лежит.
Сразу же встает проблема с освещением. Ведь для того, чтобы «вживленный» объект выглядел органично, его освещение должно соответствовать сцене в целом. Более того, было бы совсем неплохо, если бы он отбрасывал тень на другие части сцены. С освещением все делается достаточно естественным путем. Если есть информация о свете, который был установлен на съемочной площадке, то делается подобная структура из виртуальных осветительных приборов, а потом их параметры подгоняются, грубо говоря, на глаз. Если же такой информации нет, то сразу переходим ко второй стадии – подбору параметров, только теперь необходимо подобрать еще количество и расположение источников света.
А вот для реализации теней потребуется достроить в 3D те части сцены, на которые будет падать тень. Эти части делаются таким образом, что их не видно при финальной отрисовке сцены, но тень, которая падает на них, будет представлять собой полупрозрачное темное пятно. То есть фон (отснятый материал) будет просвечивать, он будет затемнен, одним словом мы получим именно тень. Можно, конечно, поступить и проще – «прилепить» на композинге к 3D-объекту снизу полупрозрачное черное нечто, нарисованное в «Фотошопе», но опять же непонятно, как это нечто будет меняться при повороте камеры.
Если же отснятых актеров необходимо внести в 3D-среду, то тут сначала вся сцена продумывается, создается четкий план. После чего актеры снимаются на зеленом или синем фоне, при этом камера должна «проехать» именно так, как в финальной сцене. Далее в дело снова вступает программа. Только теперь при съемках по фону следует расставить маркеры, которые будут использоваться программой как опорные точки. Маркеры могут быть какими угодно, главное, чтобы они были хорошо видны на основном цвете фона и чтобы впоследствии их было легко убрать. Например, в качестве маркеров часто применяют обычные шарики для пинг-понга, которые хорошо видны при любом освещении. Правда, необходимо следить за тем, чтобы в каждом кадре одновременно оставалось не меньше чем минимально допустимое число маркеров. Это число зависит от конкретной программы, обычно оно не превышает пяти. После восстановления траектории движения камеры действия очень походи на предыдущий случай, только теперь персонажи будут заслонять собой цифровой фон, а через те части кадра, которые были зелеными, фон будет просвечиваться. Ну и с привязкой актеров к поверхности, по которой они ходят, придется немножко повозиться.