Многие из вас с особой гордостью утверждают, что графика в компьютерных играх для них не важна, но так ли это на самом деле? В конце концов всегда приятно, когда игра выглядит красиво, и Obsidian стараются нас не разочаровать.
Фоновые изображения
Пример суточного цикла в одной из игровых областей.
Как уже упоминалось ранее, наши живописные фоны обрабатываются в Maya как двухмерные картинки. Это очень большие изображения размером в несколько гигабайт необработанных данных, поэтому прежде чем они попадают в игру, их сжимает специальная программа. Maya создаёт четыре слоя фоновых изображений: окончательный, глубина, нормали и альбедо. Эти слои объединяются в Unity для создания попиксельной окклюзии трёхмерных объектов и динамического освещения в реальном времени. Впервые появившись в игре, фоны выглядят достаточно плоскими, а в редакторе Unity игровой мир кажется несколько перекошенным. Иллюзия реалистичности наступает только тогда, когда ортогональная камера размещена под идеально подходящим углом.
Слои обработки.
Персонажи
Затем мы помещаем трёхмерные объекты поверх двухмерного изображения. Игровые персонажи представлены динамичными трёхмерными моделями, которые анимируются, обрабатываются с применением шейдеров и материалов, а затем помещаются в сцену. В основном материале для персонажей применяются карта нормалей (небольшие изменения в деталях поверхности), карта отражения (блеск) и карта альбедо (основной цвет). Основной материал также поддерживает карту оттенков, позволяющую нашим дизайнерам выбирать цвет брони, волос и кожи.
Мы применяем шейдеры, способные изменять внешний вид и образ персонажей. Например, у нас есть шейдер металла, увеличивающий уровень блеска и отражающий окружение с использованием специальной карты. Шейдер ткани, напротив, убирает весь блеск и даёт нашим художникам возможность одевать персонажей в наряды из хлопка, шерсти и атласа. Кроме того, для создания богоподобных огня, привидений и призраков, а также окон, которые вы можете видеть на снимках экрана и видео, мы используем особые материалы, такие как эмиссионные шейдеры, не подверженные влиянию света.
Так как в отличие от фонов персонажи полностью трёхмерны, для них применяется другая система освещения, в которой используются два источника направленного света. Первый источник создаёт основной световой поток и вне помещений чаще всего имеет цвет и интенсивность солнечного света, но может быть изменён в процессе цикла дня и ночи так, чтобы создавать иллюзию лунного света. Второй источник используется для того, чтобы неосвещённая сторона модели персонажа не была полностью чёрной. Эти источники размещаются в зависимости от сцены и настроек освещённости фона для создания направления солнечного света, определённого настроения или атмосферы.
Помимо направленных, мы используем динамические источники отложенного света, оказывающие влияние как на фоновые изображения, так и на персонажей. Например, присутствующий в сцене факел освещает не только двухмерный фон, но и стоящих рядом трёхмерных персонажей. Источники отложенного света используются и для создания эффектов заклинаний: взрыв огненного шара создаёт вспышку, освещающую тёмное подземелье.
Собираем всё воедино
Как и многие из вас, на первых скриншотах мы заметили выпадение трёхмерных персонажей из двухмерной сцены. Мы надели свои мыслительные шапочки и придумали несколько функций, таких как системы динамического фонового освещения и контроля тени.
Чтобы персонажи хорошо вписывались в сцену, мы используем систему динамического фонового освещения, берущую образцы цвета из двухмерного окружения и создающую из них быструю, но довольно грубую модель глобального освещения. Персонажи получают едва различимую цветовую окраску в зависимости от типа местности, в которой они находятся. Если персонаж стоит посреди буйной зелени джунглей, система фонового освещения придаст ему слабый зеленоватый оттенок света, отражённого окружением. Игровые программисты любят быстрые и простые механизмы, а фоновое освещение позволяет достичь великолепных результатов с наименьшими потерями производительности.
До и после применения фонового освещения:
С фоновым освещением.
Другой системой, призванной связать персонажей со сценой, стала система затенения трёхмерных объектов, находящихся в тёмных областях двухмерного фона. Новая система создаёт графическую карту низкого разрешения, отслеживающую направленный на персонажа солнечный свет и управляющую картой динамических теней с целью избежать двойного наложения. Наконец, для наилучшего сочетания двухмерных и трёхмерных теней мы окрашиваем последние оттенком первых.
До и после смешения теней:
Без смешивания.
Со смешиванием.
Последним этапом становится добавление эффектов пост-обработки. Для этой сцены мы добавили едва различимый эффект свечения, воздействующий на персонажей и элементы окружения.
Источник: Kickstarter.