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