Как создать атмосферные окружения с ограниченным бюджетом

Сегодняшний гостевой пост от Альфонсо Капаррини, соучредителя и разработчика Lapsus Games. 28 августа Lapsus запустил свою дебютную игру, NODE: Последняя услуга Антарии, уникальное 2.5D приключение-головоломка с абсолютно потрясающим освещением в игре. Узнайте, как Альфонсо, профессиональный CG-художник по дню, подходит к освещению в HDRP, чтобы создать NODE's густо атмосферные окружения в Unity.
Как художник по освещению в анимационной индустрии, я привык к тому, что у меня практически нет ограничений на то, что я могу добавить в сцену, чтобы получить желаемый вид. А если что-то не работает? Я исправляю это в композитинге. Но чтобы получить один единственный кадр из этого потока, может потребоваться десятки или даже сотни часов времени рендеринга.
Когда я начал разрабатывать NODE: Последняя услуга Антарии в Unity, мне пришлось изменить свой подход, чтобы получить кинематографические, атмосферные результаты, к которым я привык, но это должно было работать на 60 кадров в секунду вместо 60 часов на кадр.
Не нужно и говорить, что введение объемного освещения никогда не бывает дешевым, но вот некоторые инструменты и техники, которые я разработал, чтобы осветить NODE так, чтобы это выглядело богато и кинематографично, при этом оставаясь достаточно простым для производительного выполнения в реальном времени.
Обычная отправная точка: Просто ключевой свет
С этого начинается каждый: Вы добавляете один ключевой свет и надеетесь, что Глобальное освещение (GI) волшебным образом заполнит остальное.

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

Объемные эффекты: Добавление глубины
Поскольку мы хотим атмосферное окружение, давайте начнем с включения объемного тумана. Это мгновенно добавляет атмосферу, глубину и направленность. Окружение начинает ощущаться так, будто в нем есть воздух.
Тем не менее, этого все еще недостаточно!

Это тот момент, когда вы можете начать сходить с ума, пытаясь добавить свет везде – гигантские источники света, источники света без теней и т. д. – чтобы заполнить все пространства, которые освещает свет или глобальное освещение. Но накопление всех этих идей, скорее всего, приведет к тому, что сцена будет казаться более плоской из-за потери объема и размерности – или будет работать гораздо медленнее.
Моя цель для УЗЕЛ заключалась в создании ощущения плотно атмосферного окружения, с светом, отражающимся и рассеивающимся в самом воздухе, не ухудшая производительность. С этой целью я разработал это решение.
Имитирование рассеяния света в воздухе с использованием геометрических объемов
Чтобы реализовать свои цели освещения для УЗЕЛ, я создал очень простой неосвещенный шейдер, который создает плавный градиент с HDR цветами. Я добавил элементы управления для средней точки, затухания и множителя эмиссии. Я использую этот шейдер на базовых геометриях, таких как сферы, капсулы, коробки или пользовательские сетки, размещенные в областях, где я хотел смоделировать свет, заполняющий воздух. Эти объемы не физически точны, но они ощущаются правильно.

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

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

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


Туман, градиентное небо и тональная коррекция
Затем я дополнил сцену традиционным туманом – достаточно, чтобы добавить глубину сцене в зависимости от ее размеров. Я отрегулировал яркость и цвет с помощью Градиентного неба, что позволяет мне унифицировать цветовую палитру и установить общий тон для окружения.
Чтобы все это склеить вместе, я использовал тональную коррекцию ACES. Не вдаваясь в слишком много деталей, это придает финальному кадру более «кинематографическое» ощущение.

Плавные переходы между атмосферой
Эта комбинация тумана и объемного освещения, окрашенного градиентным небом, а также использование геометрических объемов, имитирующих рассеяние атмосферного света, также позволила добиться плавных переходов и уникальных атмосфер. Я могу контролировать длину и точки перехода, регулируя градиенты на градиентах созданного мной шейдера без освещения, вместе с объемным смешиванием Unity для перехода между различными настройками неба и тумана.
Это также помогло мне избежать использования большого количества источников света и сохранило время запекания света на очень низком уровне. Я горжусь тем, что могу сказать, что общее время запекания для 150 различных сцен в NODE составляет менее 1 часа!

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

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


Итоговые мысли
Освещение УЗЕЛ: Последняя услуга Антари была полностью посвящена принятию ограничений и превращению их в творческие возможности. Приходя из мира анимации, мне пришлось переосмыслить многое из того, что я знал: Как обмануть без композитинга, как направить взгляд, не бросая больше света на проблему, и как сделать сцену насыщенной, не нарушая производительность.
Надеюсь, некоторые из этих приемов дадут вам идеи для вашего собственного проекта или хотя бы напомнят, что всегда есть способ обойти первый интуитивный подход. Спасибо за чтение!
УЗЕЛ: Последняя услуга Антари доступна сейчас на ПК и консолях – добавьте игру в список желаемого здесь. Следите за другими играми, созданными с помощью Unity, на нашей странице кураторов Steam, и ознакомьтесь с другими историями разработчиков Unity на нашей странице ресурсов.
