Командиры, в грядущем крупном обновлении «Палящие лучи» у вас появится возможность вывести графику игры на новый уровень благодаря технологии трассировки лучей. В этом дневнике мы подробно расскажем, как работают новые графические настройки, и покажем, как они улучшают визуальную составляющую.
Трассируемая сцена
Чтобы эффекты рейтрейсинга работали, нужно заранее подготовить сцену для трассировки. Вместо того чтобы перебирать все экземпляры объектов в сцене, мы используем специальную структуру ускорения — иерархию ограничивающих объёмов (BVH). Каждая загруженная модель создает собственную структуру ускорения нижнего уровня (BLAS), а все они собираются в структуру ускорения верхнего уровня (TLAS), которую и обрабатывает аппаратная часть видеокарты для трассировки лучей.
В Enlisted мы добавили в BVH практически все объекты с качеством, близким к финальным игровым моделям, чтобы обеспечить физически корректный рендеринг. Благодаря этому трассировка лучей может учитываться на всей карте: например, вы будете видеть в отражениях деревья на том же расстоянии, на котором они отрисованы в кадре.
Сцена обновляется каждый кадр, так как в ней есть анимированные объекты, и сборка BVH запускается на множестве потоков процессора для сохранения высокой частоты кадров. Поэтому для комфортной работы настоятельно рекомендуется использовать относительно современный процессор.
Карта теней с трассировкой лучей (RTSM)
Трассировка теней заменяет обычные теневые карты. От пикселей, видимых на экране, в направлении солнца выпускаются лучи в стохастическом порядке — это даёт временную выборку того, какая часть поверхности освещена. Затем результат пропускается через шумоподавление, чтобы в итоге получить мягкие тени.
В результате тени становятся гораздо более реалистичными и плавными в зависимости от расстояния до источника. Как в реальной жизни.
Без RTSM
C RTSM
На более мощных GPU также можно включить динамическое освещение с трассировкой лучей. Это позволяет строить реалистичные до каждого пикселя тени от любого источника света, у которого они активированы.
Без RTSM
C RTSM
Трассировка лучей окружающего затенения (RTAO)
Трассировка лучей окружающего затенения предназначена для моделирования того, как объекты блокируют рассеянный небесный свет.
Без RTAO
С RTAO
В растеризованном конвейере это реализуется как эффект в экранном пространстве, то есть можно брать образцы только из того, что видно. Это может приводить к ложным затенениям, когда свет проходит сквозь объекты, или к исчезновению затенения на границах экрана, поскольку там затеняемый объект фактически перестает существовать с точки зрения реализации объектов на экране.
RTAO обходит эту проблему, выполняя расчёт непосредственно в сцене с трассировкой лучей, получая доступ ко всей необходимой информации для корректного вычисления.
Трассировка отражений (RTR)
Визитная карточка трассировки лучей — реалистичные отражения. Как правило, мы комбинируем отражения в экранном пространстве и зонды отражений, а в режиме высококачественной трассировки используем глобальную иллюминацию сцены, чтобы получить реалистичный цвет объектов. Однако при трассировке лучей мы можем сэмплировать отражения методом Монте-Карло, вычислить точный цвет попаданий и затем удалить шум, получая физически корректные отражения.
Без трассировки отражений
С трассировкой отражений
В Enlisted мы применяем лучи переменной длины для оптимизации отражений на шероховатых поверхностях. Более короткий луч означает более быструю трассировку, и поскольку отражение на таких поверхностях менее критично для освещения, визуальное качество не страдает!
Без RTR
С RTR
Кроме того, BVH-сцена позволяет трассировать прозрачные эффекты — дым и огонь, которые ранее не отображались в отражениях. Например, огнемёт теперь освещает окружающее пространство, а даже самые далёкие клубы дыма видны в лужах.
На этом скриншоте вы также можете наблюдать, как шероховатый потолок не формирует изображение из-за того, что отражённые лучи рассеиваются в широком конусе, но некоторые детали огня можно наблюдать на гораздо более гладких, хотя и не зеркальных стенах.
Также источники света участвуют в освещении BVH-сцены, поэтому в отражении можно увидеть лампы, не попадающие в кадр.
Еще один метод, который мы использовали, — это применение предыдущего кадра в качестве кэша освещения. По сути, если луч попал в объект, который присутствовал в предыдущем кадре, нам не нужно рассчитывать освещение для этой поверхности с нуля — мы можем просто считать данные из кэша. Это не только немного быстрее, но и улучшает качество освещения, поскольку предыдущий кадр также был освещён с помощью трассировки лучей, что приближает эффект, который мы получили бы при рекурсивном испускании лучей, но гораздо быстрее. На этом скриншоте стены напрямую отражают небо, но пол отражает только стены, и тем не менее непрямое отражение неба все еще присутствует.
Трассировка прозрачных отражений (RTTR)
Без RTTR
С RTTR
У нас есть отдельная опция для трассировки прозрачных отражений. Этот параметр включает отражения на всех стеклянных поверхностях в игре. Поскольку стекло гладкое, у него зеркальные отражения. Сам материал встречается достаточно редко, поэтому эффект получается недорогим в плане производительности, но очень заметным визуально.
Прицелы с кубической картой
Прицелы с RTTR
Теперь в прицеле вашей снайперской винтовки можно увидеть всё, что происходит за вашей спиной.
Трассировка воды (Ray Traced Water, RTW)
Без трассировки воды
С трассировкой воды
И, наконец, есть опция трассировки воды. Этот параметр включает лучевую трассировку отражений на поверхности воды с использованием специального алгоритма временного накопления, минимизирующего «призрачные» артефакты. Также настройка добавляет мягкие тени от солнца на воде, рассчитанные трассировкой лучей.
Производительность
Трассировка лучей рассчитана на топовые ПК, но мы приложили все усилия, чтобы сделать её более доступной.
Все названые нами параметры можно включать и выключать независимо друг от друга, что позволяет регулировать нагрузку, опираясь на возможности вашей графической карты. Однако все RT-эффекты требуют поддержки BVH.
В зависимости от вашего графического процессора и разрешения дисплея рекомендуется использовать один из алгоритмов апскейла, поддерживаемых в Enlisted (Temporal Hyper Resolution, DLSS, FSR, XeSS).
Обратите внимание, что по техническим причинам динамическое разрешение в настоящее время не поддерживается при включённой трассировке лучей.
В грядущем обновлении «Палящие лучи» мы добавляем официальную поддержку видеокарт NVIDIA и AMD. Мы также планируем реализовать её и для Intel и надеемся предоставить дополнительные улучшения и новые возможности в последующих патчах.
Рекомендуемые системные требования
Мы рекомендуем следующую конфигурацию для ультра-настроек со всеми включенными эффектами трассировки лучей:
1080p 60fps: NVIDIA GeForce RTX 4060 / AMD Radeon RX 9060 XT
1440p 60fps: NVIDIA GeForce RTX 4070 Ti / AMD Radeon RX 9070 XT
2160p 60fps: NVIDIA GeForce RTX 5080
Эти технологии заметно улучшают визуальную составляющую игры, делая освещение и отражения реалистичнее. Обязательно оцените красоту Enlisted после выхода крупного обновления и поделитесь с нами своими впечатлениями!