В обновлении Crossout «Supercharged», которое выйдет 25 октября 2022 года, в нашем рендере появится значительное улучшение. Мы добавили в модель освещения расчет непрямого, или другими словами, глобального освещения — Global Illumination.
До этого момента, в нашем рендере применялись упрощенные алгоритмы освещения от окружения. В них точно учитывался прямой свет от источников света, а непрямой моделировался приближенно с помощью заранее рассчитанной диффузной кубмапы на уровне. Благодаря доработке и внедрению технологии «Масштабируемое глобальное освещение» из движка Dagor Engine, который использует наш издатель Gaijin Entertainment, стало возможно значительно более точно моделировать непрямое освещение.
Теперь непрямое распространение света симулируется с учетом окружающей геометрии в реальном времени, благодаря чему в дополнение к прямому свету, появится отраженный и рассеянный свет от различных поверхностей и протяженных источников света (небо, излучающие и отражающие свет поверхности, затенение от массивных объектов и зданий и т.д.). Такое улучшение заметно повышает качество картинки в малоосвещенных и полностью покрытых тенью областях — она станет более объемной и фактурной, также появится отраженный падающий свет (рефлекс) от окружающих объектов.
Специальный режим отображения освещения без текстур
Контактные тени и локальные отражения
Помимо обновления системы глобального освещения был также доработан механизм отрисовки теней и отражений, реализованы техники SSCS (Screen Space Contact Shadows или контактные тени) и SSLR (Screen Space Local Reflections или локальные отражения в экранном пространстве). Оба эффекта работают по схожим принципам — для каждого пикселя мы пускаем луч в пространстве экрана и пытаемся найти его пересечение с объектами в кадре, которые описаны «глубиной» сцены. Получается своего рода трассировка лучей!
В случае контактных теней луч пускается в направлении источника света на совсем небольшое расстояние вблизи камеры, и на многие десятки метров на горизонте. Это позволяет рисовать тени для маленьких объектов рядом с наблюдателем (таких как камни, трава и т.п.) и для гигантских гор и скал вдалеке, дополняя и улучшая классическую методику рендеринга теней, а также экономя ресурсы компьютера (например, нам не нужно подготавливать дополнительную информацию на центральном процессоре, достаточно данных о глубине сцены).
Обновленными локальными отражениями мы заменили ранее использовавшуюся технику SSPR, которая требовала дополнительных вычислений на ЦПУ, а также имела ряд ограничений, таких как: количество отражающих поверхностей на экране, возможность рисовать отражения только на плоскостях, а также не совсем честные отражения для водных поверхностей. Новая техника SSLR полностью лишена этих недостатков, теперь можно рисовать честные отражения для любых типов поверхностей, в любых конфигурациях! Алгоритм работы повторяет логику контактных теней, но на этот раз мы пускаем длинный луч в направлении предполагаемого отражения.
Обе техники работают только в связке с темпоральным сглаживанием TAA, либо наиболее продвинутыми типами сглаживания, такими как NVidia DLSS или AMD FSR 2.0. Это связано с техническими нюансами реализации техник, требующими аккумулировать результат работы алгоритмов в течении нескольких кадров для достижения наивысшего качества и оптимальной производительности. Обе технологии наполняют картинку множеством деталей, дополняя работу обновленной системы Глобального освещения.
Размытие в движении и блики
В обновлении 0.14.0 был доработан этап постобработки изображения, а также добавлены новые эффекты. Они имитируют несовершенство фото и видеотехники, малыми затратами ресурсов компьютера приближая финальное изображение к реалистичному.
На полях сражений Crossout появился эффект Motion Blur — размытие в движении. Он призван придать сцене большую динамику и сделать игровой процесс более плавным и приятным. Мы тщательно откалибровали эффект, чтобы добавить кинематографичности и наилучшим образом передать ощущение скорости, при этом не омрачить игровой опыт при ведении боя. Игроку смогут самостоятельно настроить силу размытия в настройках графики.
Помимо этого в игру был добавлен эффект Lens Flare — блики, имитирующий преломление световых лучей в объективе камеры. Этот эффект используется для более естественного отображения ярких источников света, создавая блики сложной формы, которые свойственны линзам любой оптической камеры. Виньетирование также позволяет воспроизвести эффект затенения от диафрагмы камеры по краям изображения, что добавляет выразительности кадру, позволяет придать ему художественный вид и расставить световые акценты.
Полной переработке подвергся эффект Bloom. Раньше мы использовали простую технику масштабирования изображения сцены с применением контраста — это давало очень приближенный результат низкого качества и малого разрешения, в большинстве случаев эффект блума был вообще незаметен. Сейчас изображение подготавливается с учетом экспозиции камеры, а затем применяется несколько стадий размытия по Гауссу с разной степенью важности. Благодаря тщательной оптимизации и применению современных техник, примерно за ту же стоимость мы получаем очень кинематографичные засветы разной фактуры (от микро-бликов мокрых поверхностей до ярких вспышек от взрывов). Вы можете заметить, как бронемашины в лучах солнца теперь дают приятные фотореалистичные блики от хромированных и покрашенных деталей.
На сегодня это все. На следующей неделе нас ждет еще одна часть дневника, посвященная большому аудио-визуальному обновлению Crossout. Не пропустите!