Зеркальная комната в NVIDIA Ansel
дата оригинальной публикации: 2020-06-02 автор: Perfect Snake
Исследование особенностей съемки с применением эффекта «зеркальной комнаты» заинтересовало меня еще при первом знакомстве с ним. Ранее я использовал этот эффект лишь в играх, сделанных на игровом движке UE3, и увидев пост о том, на что способен режим съемки в высоком разрешении в NVIDIA Ansel (этакий аналог функции tiledshot из UE3) при использовании его рядом с отражающими поверхностями, решил поэкспериментировать с этим методом.
В статье я хочу поделиться обнаруженными закономерностями, особенностями и просто любопытными вещами, связанными с данным методом съемки, на примере игры HITMAN 2.
Съемка в высоком разрешении
Функция съемки в высоком разрешении, являющаяся частью NVIDIA Ansel, работает по такому же алгоритму, что и функция tiledshot в UE3, то есть она собирает конечный снимок по принципу мозаики, используя плитки, равные размеру разрешения экрана.
В меню NVIDIA Ansel задается множитель, который показывает во сколько раз будет увеличено финальное изображение относительно исходного разрешения экрана. Также, как и в случае с tiledshot, данная функция копирует объекты внутри зеркальной комнаты.
Зеркальная комната
Если в большинстве игр зеркальная комната представляет собой noclip пространство, то, в случае с HITMAN 2, это буквально комната внутри зеркала, поэтому нужно учитывать, что объекты зеркально отражены.
Особенности метода начинают открываться при использовании зеркальной комнаты и эффекта «хромакей», встроенного в Ansel. При инвертированной глубине фокуса и правильном подборе ее значения (около 2–3%) в эффекте «хромакей», можно получить силуэт отражения отраженного в зеркале объекта.
Если в таком случае использовать съемку в высоком разрешении, зеркальной комнатой для силуэта объекта станет все пространство вокруг него. Однако в отличии от подобного эффекта в UE3, где расположение объекта на экране влияло на то, каким образом будет происходить заполнение noclip пространства, здесь объект для того, чтобы быть скопированным,
должен находиться в середине экрана.
Для этих целей удобно использовать сетку третей. Например, используя множитель 3, центральное поле сетки будет являться пространством для копирования (при увеличении множителя это пространство сужается).
Можно заметить, что количество скопированных объектов в финальном снимке равно (2n-1)², где n — заданный вами множитель разрешения. Это правило работает до тех пор, пока в конечном изображении не появляются полосы хромакея по краям экрана.
Я предполагаю, что их появление можно обосновать выходом за границу отражающей среды. В этом случае происходит заполнение цветом хромакея пустого окружающего пространства.
Также я считаю, что для хромакей копий существует своя зеркальная комната, представляющая собой отражение зеркальной комнаты внутри зеркала. Она располагается с противоположной от отражения объекта стороны зеркальной поверхности и на том же фокусном расстоянии, что и оно. Таким образом, зеркальная комната хромакея находится ближе к камере, поэтому создается иллюзия, что у хромакей копий границы имеют больший масштаб, чем границы отражающей поверхности.
Использование хромакея не отменяет того факта, что сам объект копируется в отражающих поверхностях. Объектом для копий, кстати, может быть не только игровой персонаж.
Прочие наблюдения
В ходе экспериментов я также заметил следующие особенности:
Затухание копий
Каждое копирование объекта сопровождается его затуханием, таким образом, каждая последующая копия становится тусклее предыдущей.
Причем если объект находится справа от центра экрана, то его отражение затухает справа налево, а силуэт его отражения – слева направо. Если же объект находится слева от центра экрана, то затухания происходят наоборот.
Эффекты не влияют на копии объектов
В качестве примера можно рассмотреть съемку с эффектом «тилт-шифт».
Заметно, что размытие имеет те же границы, что и в изначальном виде. То же самое происходит и с эффектом «виньетка» и многими другими.
Можно использовать два хромакея
При использовании двух хромакеев: один (с инвертированной глубиной фокуса) служит для выделения объекта, другой (с обычной глубиной
фокуса) – для создания фона – появляется возможность выбора фона
по своему усмотрению.
Итог
Очевидно, что NVIDIA Ansel – гибкий и разнообразный инструмент, с помощью которого можно на ходу изменять все необходимые параметры, поэтому в сравнении со съемкой в играх на UE3, данный метод имеет явно больший потенциал. Однако особенность формирования мозаики, которая позволяет копировать объекты лишь с центра экрана, несколько сужает границы возможностей метода.
В любом случае, обширный функционал Ansel и наличие зеркальной комнаты делает HITMAN 2 колоссальным полем для экспериментов.