Большое исследование про свет в играх. Мы переписывали текст три раза, чтобы вы все поняли

На примере The Last of Us.

Освещение в играх так же важно, как сюжет и геймплей. Художники отвечают за передачу правильного настроения геймеру – а вот тут уже нужно знать, как правильно расставить свечки и солнце, чтобы они соответствовали происходящему. Настраивая атмосферу, постобработку и рендеринг, художники по освещению склеивают в одно целое все – материалы, объекты, персонажей и окружение.

Технический прорыв начался с Uncharted и The Last of Us

Вышедшая в 2013 году The Last of Us технически почти идеальна – по крайней мере, на момент выхода она считалась одним из самых красивых эксклюзивов PlayStation. Ее создание стало челленджем для художников по освещению – в постапокалиптическом мире почти нет электричества и искусственных источников света, поэтому им требовалось воссоздать пугающую атмосферу безжизненной локации, используя только естественное освещение. Почти все в игре освещено отскакивающим светом (bounce light). Это ненаправленное освещение, которое отражается от поверхностей, меняет направление и создает мягкие тени в окружении. Таким светом легко подчеркнуть красоту мелких, почти незаметных деталей при моделинге и работе с тенями.

Загружаю...

Ключевой элемент геймплея с отскакивающим светом – фонарик. И он в руках у игрока. Но давайте сперва разберемся, как вообще работает свет в играх. В The Last of Us используют два основных типа освещения – запеченное и динамическое.

Запеченное статичное освещение передается лайтмапами и вершинным освещением. Уже стало сложно? Ничего страшного, мы все объясним. «Запекание» (bake) лайтмапа – это буквально запеченный неподвижный свет. На готовую текстуру накладывают освещение, и полученный освещенный кусок натягивается на любую поверхность. По сути, запекание лайтмапа – это свет, нарисованный заранее. Так экономятся ресурсы.

Если не использовать запекание, то на просчитывание света уйдет много времени, а игра будет лагать, если вообще запустится. Запекание освобождает центральный и графический процессоры для других не менее важных вещей – ИИ, полигонов, физики, частиц и т. д.

Еще одна техника рендеринга – вершинное освещение (vertex lighting), и оно может использоваться вместе с лайтмапами. В нем освещение просчитывается отдельно для каждой вершины – так называют точки в пространстве – после чего полученные значения подгоняются под среднее значение на цвета внутри полигона. Этот способ иногда выгоднее по ресурсам, чем использование световых карт. И его используют, когда нужно сделать много мелких объектов, потому что он требует меньше видеопамяти для вычислений.

Загружаю...

Что понимать под мелким объектом? Совет от Габи Бентанкура – сравнить объект с героем. Все, что выше главного героя выиграет в качестве от использования лайтмапов, а все, что ниже – от запекания вершин. Так устроен человеческий глаз – мы часто оцениваем размер, сравнивая со своим персонажем. 

Второй тип – это динамическое освещение, которое используется для прямого освещения. Само понятие dynamic lighting означает, что свет реагирует на все изменения сцены – когда меняются тени и материал, на который он падает. Словом, все абсолютно как в жизни.

Освещение в The Last of Us – это комбинация запеченного освещения, вершинного освещения и динамического. Но так работают примерно все игры. Что насчет фишек? Вот три основных.

1. Доминирующая направленность (dominant directionality) – метод, который Naughty Dog использует для запекания направления света в помещениях, куда не доходит солнечный свет. В нем хранится информация о направлении отражений, цветах, интенсивности и значении. Так получается более реалистичный результат.

Загружаю...

Так выглядит финальный результат работы с доминирующей направленностью – он включает в себя размытие, лайтмапы, нормал мапы (карт, которые имитируют освещение неровностей и вмятин – их используют, чтобы добавить детали без дополнительных полигонов) и отражение от поверхностей. Проще говоря, доминирующая направленность – это один из видов запекания с закосом под реализм, в котором учитываются правильные направления отражений и интенсивность света.

2. Окружающие тени (ambient shadows) просчитаны отдельно для персонажей и динамичных объектов. Примеры – вместо тысячи слов.

То есть без отдельных теней персонажи смотрятся наспех прилепленными стикерами, а не как реальная часть из игрового мира.

Загружаю...

Работа с персонажем требует более тщательного подхода к теням и отражениям. Чтобы решить эту проблему, Naughty Dog использует капсульные тени – это грубое приближение формы персонажа. Художники добавляют им деталей, и получаются очень мягкие, естественные тени, которые прекрасно взаимодействуют с преимущественно непрямым освещением.

 

3. Фонарик! Фонарик находится в руках у игрока, поэтому сделать его обычным запеканием попросту невозможно – его позиция, направление и яркость меняются с каждым фреймом.

Графический инженер Naughty Dog Кэ Сюй изобрел новую технологию рендеринга для фонарика на основе алгоритма отражающей карты теней (или reflective shadow map). Этот метод поддерживает непрямое освещение для динамических источников света с учетом геометрии сцены. Непрямое освещение технически ресурсоемкое дело, и его дорого симулировать – каждый объект становится потенциальным отражателем света.

Разница заметна в совсем темных помещениях – с включенным отскакивающим светом мы видим, что находится слева, а без него вся игра превращается в Outlast с темным коридором.

Загружаю...

Бентанкур поясняет: гораздо лучше вызвать у игрока ощущение, что он находится в темноте, чем просто оставить его одного в темной комнате. Черный цвет не нужен для создания ощущения темноты – в реальной жизни глаз приспосабливается к низкому освещению, а художники лишь воспроизводят это чувство.

Некоторые из этих наработок устарели – но их идеи пригодились в The Last of Us 2

Naughty Dog уделяют конвейеру постобработки большое внимание, делая упор на кинематографичность итоговой картинки. На PlayStation 3 не хватало мощностей для сглаживания, так что The Last of Us и Uncharted использовали относительно грубое решение, в котором размытие сводилось к минимуму. Пиксели, особо заметные на контрастных краях, стали проблемой.

С технической точки зрения в The Last of Us 2 используются те же наработки, что и в предыдущих играх, но в этом случае поражает другое – образцовое исполнение всех мелких деталей и тщательное продумывание более ранних концепций.

Загружаю...

Во второй части Last of Us Naughty Dog развернула усовершенствованную реализацию временного сглаживания с чистыми краями и минимальным размытием. Это тот же подход, что использовался в Uncharted: Lost Legacy – и он позволяет выводить чистые нативные 1080p. Это критично важно для PS4 Pro с поддержкой 4K – консоль выводит 1440p, которые масштабируются для 4K дисплеев.

В движке TLoU 2 используется отложенный рендер. Это одна из технологий рендера, при которой процесс вычисления разбивается на небольшие части, от простых к сложным, а потом снова соединяется. Движок второй части пережил изменения по сравнению с первой, хотя впервые система отложенного рендера возникла в Uncharted, и теперь студия использует ее. Это позволяет Naughty Dog добавить несколько динамических источников света, дальность их лучей и высокую точность при взаимодействии света с материалами. Они играют большую роль в атмосферных моментах, создавая контраст.

Ниже – пример сцены из Uncharted 4, в которой много разных источников света: сверху, из окон и небольшие светильники. 

Обычно отложенный рендер используют в сценах с большим количеством источников света для оптимизации ресурсов. Есть видео, в котором наглядно показано, сколько источников света может уместиться на сцене, если использовать метод отложенного рендера – более 26 тысяч светлячков!

Загружаю...

А еще вы могли заметить пыль в игровом мире. Система рендеринга частиц в запыленных помещениях сделана так, чтобы естественно передать ощущение дряхлости, но большие объемы частиц с высокой плотностью можно увидеть не только на книжных полках. В огне тоже используется эта система, в которой частицы динамически реагируют на свет – присмотритесь к огню повнимательнее, и вы увидите, что частицы слегка окрашены цветом и светом огня.

В сочетании с конвейером постобработки, в котором игра получает все кинематографические эффекты, включая размытие движения на пиксель (per-pixel motion blur), зернистость пленки и глубину резкости боке (размытости вне фокуса). Размытие движения – один из главных элементов игр студии со времен Uncharted 2, и в The Last of Us 2 реализация, пожалуй, лучшая. В сочетании с моушн-матчингом это обеспечивает еще большую плавность анимации персонажей.

Загружаю...

Настолько убедительный живой мир получился в том числе из-за более тонких взаимодействий: отражение на воде, дующий ветер, отбрасываемые тени, разбиваемое стекло – и многое другое. В этом The Last of Us 2 прекрасна.

Есть только одна игра с шикарным паркуром. Нет, не Assassin’s Creed

На «Ведьмака» делают секс-моды: можно раздеть любую девушку в игре и изменить форму пениса Геральта