⇣ Содержание
Опрос
|
реклама
Самое интересное в новостях
Твоя видеокарта устарела: тестирование Cyberpunk 2077 с трассировкой путей
CD Projekt RED сделала из Cyberpunk 2077 полигон для испытания новых технологий. В момент релиза игра уже могла похвастаться развитой моделью трассировки лучей, которая охватывает три ключевых аспекта изображения: глобальное (то есть непрямое) освещение, отражения и тени. Тем не менее, как и другие гибридные движки, RED Engine привлекает рейтрейсинг к изолированным операциям, в то время как основная часть рендеринга по-прежнему выполняется методом растеризации. Недавний патч 1.62 предлагает альтернативу этому, безусловно компромиссному, подходу в виде полностью трассированной симуляции освещения. Cyberpunk 2077 — не первый проект такого рода. Ранее Quake II RTX и Minecraft уже продемонстрировали унифицированный транспорт света на основе алгоритма под названием Path Tracing («трассировка путей»). И хотя для современных видеокарт ни та ни другая игра уже не представляет собой непосильную нагрузку, они по-прежнему чрезвычайно требовательны, а ведь сцены Quake II и Minecraft даже с учетом всех новых материалов и шейдеров весьма бедны деталями по сравнению с современным тайтлом категории ААА. Трассировка путей в Cyberpunk 2077 подняла требования к железу на высоту, которая недоступна даже мощнейшим GPU нового поколения без определенных компромиссов. ⇡#Path Tracing в Cyberpunk 2077Перед тем как мы перейдем к результатам тестирования, будет уместна краткая справка о том, что представляет собой трассировка путей, чем она отличается от уже знакомой трассировки лучей и почему именно с этим алгоритмом связано будущее игрового рендеринга. Трассировка лучей начинается с того, что из виртуальной камеры исходит один первичный луч на каждый пиксел финального кадра, который либо уходит за пределы сцены (что означает черный цвет пиксела, цвет скайбокса или другой результат по умолчанию), либо сталкивается с какой-нибудь поверхностью, материал которой диктует поведение лучей второго порядка. Если объект не является идеальным зеркалом, возникают вторичные лучи, соединяющие точку падения первичного луча со всеми источниками света для того, чтобы определить, получает ли она прямое освещение (лучи теней). Отражающие и прозрачные поверхности также выпускают лучи для расчета отражений и рефракции, которые, в свою очередь, сталкиваются с новыми поверхностями. Затем в идеальном случае работа продолжается до того момента, когда все вторичные лучи соединяются с теми или иными источниками света. Но в действительности число лучей возрастает до бесконечности при отрисовке любой сколько-нибудь сложной сцены, поэтому рендерер всегда настроен на заданную глубину рекурсии — это ключевой фактор, от которого зависит качество финального изображения. Другую сложность для рейтрейсинга представляют поверхности, отражающие свет рассеянно, то есть в различных направлениях. Как следствие, правдоподобное моделирование косвенного освещения сводится либо к отслеживанию огромного количества вторичных лучей, либо к тем или иным формам аппроксимации с применением внешних алгоритмов. Неудивительно, что самый распространенный и дешевый с точки зрения вычислительных ресурсов эффект, который реализован в играх на основе трассировки лучей, — это тени, для рендеринга которых в простейшем случае необходимо рассчитать лишь одно отражение луча на каждый пиксел кадра. Рендеринг зеркальных поверхностей и глобальное освещение также, как правило, сводятся к одному отражению каждого луча ради экономии ресурсов GPU и зачастую комбинируются с зондами, «запеченными» разработчиком в сцене, которые осуществляют аппроксимацию света локальных источников. Именно так, к примеру, работает исходная модель трассировки лучей в Cyberpunk 2077. Несмотря на все перечисленные ограничения и «костыли», рейтрейсинг остается серьезной задачей для потребительских видеокарт. Теперь поговорим о том, что в этой ситуации меняет трассировка путей. Процесс трассировки лучей сам по себе полностью детерминирован, и потому глубина рекурсии, а также количество вторичных лучей, которые возникают в каждой точке отражения, в конечном счете определяют, насколько компьютерное изображение способно приблизиться к фотореализму. Path Tracing также опирается на трассировку лучей в качестве одного из компонентов модели, но с тем ключевым отличием, что в каждой точке пересечения с поверхностями происходит лишь одно отражение луча, причем в случайном направлении! Однако хоть и в случайном, но не обязательно равновероятном. Каждая поверхность характеризуется своей функцией распределения — BRDF (Bidirectional Reflectance Distribution Function), форма которой означает, насколько зеркальным, матовым или прозрачным является материал. К примеру, идеально матовая поверхность действительно с равной вероятностью отразит луч под любым углом. Идеальное зеркало в 100 % случаев отражает луч под углом, равным углу падения. Но большинство материалов игровой сцены наверняка обладают промежуточными качествами, а значит, свойственная им функция BRDF предусматривает высокую вероятность отражения луча под определенным углом и относительно низкую — под другими углами (к чему, кстати, можно добавить и вероятность сквозного прохождения луча с преломлением). Как следствие, в трассировку путей изначально заложена физически достоверная симуляция как прямого, так и рассеянного отражения света. Алгоритм не стремится найти единственно верное решение этой задачи, но постепенно приближается к нему, выпуская много (очень много) первичных лучей. Часть из них в пределах заданного разработчиком лимита отражений придет к тому или иному источнику света и тем самым внесет свой вклад в финальный цвет пиксела. Насколько точным окажется результат, зависит от числа первичных лучей, которое можно плавно настраивать под специфику задачи и вычислительный ресурс, а зернистый вид изображения при небольшом количестве лучей легко исправить шумоподавляющим фильтром. Конечно, у трассировки путей есть свои ограничения. К примеру, она нуждается в избыточном семплинге, чтобы избежать шума при расчете оптических каустик (частным случаем которых является игра света в жидкой среде). А главное, это, безусловно, намного более требовательный способ рендеринга, чем гибрид растеризации с дозированным рейтрейсингом. Рекурсию в Cyberpunk 2077 ограничили всего двумя отражениями, тем не менее взрывной рост количества лучей (свыше 600 на каждый пиксел!) предъявляет колоссальные требования не только к эффективности RT-блоков современных GPU, но и к быстродействию их шейдерного массива. Неудивительно, что CD Projekt RED ориентировалась в первую очередь на ускорители NVIDIA последнего поколения, у которых есть в избытке и то и другое. Однако даже чипам Ada пришлось немного помочь. Во-первых, Cyberpunk 2077 теперь использует функцию SER (Shader Execution Reordering), благодаря которой GPU способен перегруппировывать потоки вычислений для повышения однородности запросов к видеопамяти, а она пока доступна лишь через расширение проприетарного интерфейса NVAPI. Во-вторых, еще до трассировки путей в игру внедрили пакет технологий DLSS 3.0, который позволяет не только масштабировать кадры, но и генерировать добавочные при помощи самой нейросети — опять-таки лишь на ускорителях GeForce RTX 40-й серии, которые получили усиленную логику для вычислений оптического потока. Что касается продуктов AMD, то, несмотря на большой прогресс архитектуры RDNA, в области трассировки лучей она по-прежнему на одно поколение отстает от достижений NVIDIA, и то при использовании гибридного рендеринга, а технология апскейлинга FSR по-прежнему никак не задействует логику матричных вычислений, представленную в ускорителях Radeon RX 7000. Нечего и говорить про дискретные видеокарты Intel, ведь это решения средней ценовой категории, а трассировке путей в Cyberpunk 2077 нужно железо высшего эшелона. К счастью, Path Tracing не является безальтернативной заменой гибридного рендеринга, а еще ее можно включить только в режиме фотокамеры. Скриншоты ниже демонстрируют, как меняется изображение в зависимости от режима рендеринга: без трассировки лучей, с изолированным рейтрейсингом и с полной трассировкой путей. Что и говорить, Path Tracing полностью меняет некоторые кадры. Множественный перенос цвета с одной поверхности на другую и более реалистичное распространение солнечных лучей — все это бросается в глаза. Однако CD Projekt RED еще придется поработать над отражающими свойствами отдельных материалов, а некоторые места города, похоже, были спроектированы без учета корректной модели освещения и в результате производят совсем не то впечатление, что раньше, — это типичная проблема игр, которые перевели на трассировку путей уже после релиза. ⇡#Тестовый стенд, методика тестирования
Тестирование производительности выполнено с помощью встроенного бенчмарка Cyberpunk 2077. Показатели средней и минимальной кадровых частот выводятся из массива времени рендеринга индивидуальных кадров, который игра записывает в файл результатов. Средняя частота смены кадров на диаграммах является величиной, обратной среднему времени рендеринга кадра. Для оценки минимальной кадровой частоты вычисляется количество кадров, сформированных в каждую секунду теста. Из этого массива чисел берется значение, соответствующее 1-му процентилю распределения. За основу настроек графики мы взяли пресет Ultra, который приводит к максимальным значениям все индивидуальные параметры, кроме качества отражений в экранном пространстве: последняя опция вызывает чрезвычайно сильное падение кадровой частоты при растеризованном рендеринге, но не имеет никакого значения в условиях частичного или полного рейтрейсинга. ⇡#Участники тестирования
Прим. В скобках после названий видеокарт указаны базовая и boost-частота согласно спецификациям каждого устройства. Видеокарты с заводским разгоном приведены в соответствие с референсными параметрами (или приближены к последним) при условии, что это можно сделать без ручной правки кривой тактовых частот. В противном случае используются настройки производителя.
⇣ Содержание
Если Вы заметили ошибку — выделите ее мышью и нажмите CTRL+ENTER.
|