Мы тестируем трассировку лучей в Battlefield 5: новое качество игры? • Eurogamer.pl

Недавно он дебютировал в Battlefield 5, благодаря чему мы наконец-то можем ближе познакомиться с революцией графики в реальном времени - трассировкой лучей в реальном времени, что стало возможным благодаря новой линейке графических процессоров Nvidia, помеченной символом RTX.

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

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

В конце нашего анализа вы найдете подробное интервью с инженером DICE Ясином Улудой, который вместе с Йоханнесом Делигианнисом работал над реализацией трассировки лучей в Battlefield 5. Во-первых, стоит посмотреть видео-материалы ниже, чтобы ознакомиться с игровым процессом и действием в игре. эффекты трассировки лучей в четырех заданных настройках: низкий, средний, высокий и ультра. В настоящее время DICE рекомендует играть с низким уровнем DXR, но даже тогда эффект выглядит великолепно.

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

Недавно он дебютировал в Battlefield 5, благодаря чему мы наконец-то можем ближе познакомиться с революцией графики в реальном времени - трассировкой лучей в реальном времени, что стало возможным благодаря новой линейке графических процессоров Nvidia, помеченной символом RTX

DXR значительно изменяет шероховатость поверхности и разрешение отражений, однако даже самые низкие настройки способны проникнуть в систему сверхстандартного SSR (Screen-Space Reflections). DXR значительно изменяет шероховатость поверхности и разрешение отражений, однако даже самые низкие настройки способны проникнуть в систему сверхстандартного SSR (Screen-Space Reflections) Коррекция DXR в аспекте шероховатости также может влиять на то, будут ли отображаться некоторые материалы вообще, как в случае металлических окон, показанных здесь. В настоящее время рабочий диапазон DXR одинаков на каждом уровне настроек, в то время как максимальное разрешение отражений уменьшается с каждой более низкой предустановкой. Xbox One X вообще не использует SSR, поэтому сравнение этой версии с версией для ПК, работающей без RTX, является сложной задачей. Обратите внимание, сколько неправильных, ярких отскоков было исправлено благодаря SSR. RTX исправляет еще больше таких ошибок. Трассировка лучей правильно отражает отражение. Этот эффект оказывает огромное влияние на общее качество изображения по сравнению с версией для Xbox One X. В сценах, где светорассеивающие материалы преобладают, настройки качества DXR оказывают небольшое влияние на качество изображения, но имеют огромное значение для производительности игры. Отражение отражений от SSR до ультра дает лучшее распределение отражений по сравнению с отражениями от версии для Xbox One X. DXR на Ultra дополнительно улучшает этот эффект. Качество DXR зависит от сцены и конкретных настроек. В этой сцене DXR на низких частотах предлагает 35 кадров в секунду в разрешении 4K, где стандарт Ultra (без DXR) поддерживает здесь 75 кадров в секунду. Более высокие настройки DXR уменьшают шероховатость поверхности, что, в свою очередь, добавляет эффект трассировки лучей даже на более тусклых поверхностях.

Еще один удар наносится на странице разрешения отражения. Battlefield 5 выпускает переменное количество световых лучей, которые рассчитываются на основе методов биннинга и отбраковки, а сам экран делится на «плитки» 16x16 пикселей. Если среде требуется меньше лучей, размер «плитки» также уменьшается, но, с другой стороны, если весь экран заполнен водой, отражающей изображение, алгоритм налагает пропорциональное ограничение на разрешение.

Ультра-настройки - это 40% разрешения, 31,6% - высокая, средняя - 23,3%, а низкая - 15,5%. Таким образом, четкость отражения уменьшается при переходе к любой более низкой настройке, но следует еще раз подчеркнуть, что даже низкие настройки гарантируют правильное чувство трассировки лучей - наиболее важные поверхности, такие как вода, зеркала и полированные металлы, без проблем реагируют на окружающую среду.

Доступные в настоящее время тесты производительности DXR в Battlefield 5 дают довольно неутешительные результаты, но вскоре появится улучшенный код, который должен решить ряд проблем. Особенно с обременительными падениями производительности. Например, на данный момент все уровни DXR борются с ошибкой ограничивающего прямоугольника, что делает трассировку лучей еще более обременительной для оборудования.

Некоторые «ложные» лучи луча бога и даже некоторые виды листвы также могут негативно повлиять на производительность игры, посылая гораздо больше лучей, чем фактически необходимо. Трудно сказать, сколько производительности мы должны жертвовать, запустив DXR, потому что вычислительная нагрузка меняется с содержанием на экране - единого ответа нет.

При использовании RTX 2080 Ti и низкоуровневой трассировки лучей уровни, основанные главным образом на песке или снегу, могут работать со скоростью 60 кадров в секунду при скорости 1620 пикселей, в то время как карты с более богатым отражением, такие как Роттердам, работают со скоростью 60 кадров в секунду. , должен работать с разрешением 1296p или ниже. Для внесения необходимых изменений на дисплее 4K мы использовали внутренний масштабатор разрешения, доступного в игре.

Конечно, улучшение качества изображения будет зависеть от отображаемого контента. Если преобладают пыль и камни, настройки трассировки низких и средних лучей будут видны только на большинстве отражающих металлов, на стеклянных поверхностях или на случайных придорожных лужах. Трассировка лучей дает нам существенную разницу только при более высоких настройках, где они едва заметны даже на самых матовых материалах. Карты, подобные Роттердаму, могут представлять существенные различия, но, опять же, следует подчеркнуть, что это зависит от конкретной сцены. Одна из моих любимых маленьких безделушек, которые возможны благодаря трассировке лучей, - это отражение лица персонажа в объективе телескопа.

Анализ видео Battlefield 5 на ПК-версии. Мы анализируем ключевые визуальные функции, обсуждаем функции RTX и сравниваем консольные версии.

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

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

Также интересно сравнить различные версии игры Battlefield 5 - особенно ПК с ультра-настройками (с включенным DXR) и лучшую, на наш взгляд, консольную версию для Xbox One X. Нельзя отрицать, что версии для ПК имеют большое преимущество перед консольными играми.

Релиз для более мощной модели Xbox One в основном эквивалентен версии для ПК на средних настройках, с некоторыми настройками, близкими к высоким. В версии для X мы не будем испытывать никаких отражений в пространстве экрана, поэтому в этом аспекте версия для ПК уже имеет значительное преимущество, прежде чем мы добавим DXR в уравнение. В конце концов, игра на консолях все еще выглядит хорошо, и средние настройки - хорошее место, чтобы начать играть, если у вас скромное компьютерное оборудование.

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

Чтобы комфортно играть в Quake и соответствовать его огромным требованиям к оборудованию, нам пришлось поменяться процессорами, и у Crysis были проблемы с поддержанием стабильных 30 кадров в секунду с разрешением 1024x768 или 1280x1024 даже на самых мощных графических процессорах того времени. Ответ на вопрос, в какой степени DICE сможет улучшить производительность RTX, будет известен в будущем, но минимальное разрешение 1296p на RTX 2080 Ti, которое позволяет играть со скоростью 60 кадров в секунду, является явным улучшением по сравнению с тем, что мы видели в Gamescom - и сам разработчик большой оптимист для дальнейших улучшений. Некоторые из них уже завершены и готовы к развертыванию вместе со следующим обновлением. Вывод один - это начало чего-то действительно особенного.

Впечатления от Battlefield 5 на версиях Xbox One и Xbox One X.

Теперь кое-что для настоящих энтузиастов. С появлением DXR и нашего первого взгляда на видеоигру с аппаратной ускоренной трассировкой лучей в режиме реального времени мы переходим к неизведанным водам, обсуждая технологии и приемы, которые никогда ранее не встречались в коммерческой игре.

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

Digital Foundry: Каковы реальные различия между вариантами низкого, среднего, высокого и ультра DXR?

Ясин Улудаг: В настоящее время эти различия:

  • Низкий: ограничение гладкости материала имеет коэффициент 0,9, а максимальное количество отраженных лучей равно максимум 15% от разрешения экрана.
  • Средняя: гладкость материала имеет коэффициент 0,9, а максимальное количество отраженных лучей составляет максимум 23,3% от разрешения экрана.
  • Высокий: ограничение гладкости материала имеет коэффициент 0,5, а максимальное количество отраженных лучей составляет максимум 31,6% от разрешения экрана.
  • Ультра: ограничение гладкости материала имеет коэффициент 0,5, а максимальное количество отраженных лучей равно максимум 40% от разрешения экрана.

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

Ограничение плавности, установленное на уровне 0,9, является консервативным и включает полированные металлы, стекло и воду. Значение 0,5 также включает слегка блестящие поверхности, если смотреть под определенным углом. «Процент разрешения как максимальное количество отраженных лучей» описывает максимальный общий процент, который может быть назначен для технологии радиуса трассировки лучей в соотношении 1: 1 (один радиус на пиксель). Общее количество возможных лучей увеличивается последовательно с более высокими настройками, что приводит к, по-видимому, большей четкости отраженного изображения.

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

Мы распространяем лучи там, где мы думаем, что они необходимы. Мы отказываемся от тех, которые не укладываются в установленные пределы. Мы никогда не превысим максимальное количество лучей, даже если весь экран покрыт отражающей водой - вместо этого экран делится на более мелкие области с размером пикселя 16x16 и разрешение отражения уменьшается. Чтобы сделать это возможным, необходимо интегрировать полноэкранный буфер, используя быструю память микрочипов и атомарные инструкции для остальных частей, потому что это обеспечивает низкую надежность и является очень быстрым.

Тем не менее, существуют внутренние дискуссии о потенциальных изменениях, касающихся всех индивидуальных настроек; мы могли бы сделать что-то большее. Поиграйте с элементами LOD и расстояниями техники отбраковки, а также, возможно, с настройками гибридной техники отражения изображений, которые появятся в будущем. Мы много думаем об изменениях и стараемся достичь наилучшего качества.

В предыдущем разговоре с нами вы затронули тему поправок, которые должны появиться после Gamescom - какие есть в текущей версии игры?

Yasin Uludağ: Премьерная версия имеет встроенную оптимизацию биннинга, которая реорганизует лучи на «суперпластинах» (которые представляют собой просто большие 2D-диски на экране). Каждая из «супер плиток» меняет порядок лучей в зависимости от их направления (угловое биннинг).

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

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

Мы объединили список источников света и кубических карт в структуру графического процессора, которая напоминает сетку - так что есть отдельная сетка для не затененных источников света, падающих источников света, карт кубов и т. Д. Это кубическая карта, которая используется в отражениях. Сетка также совмещена с камерой - это более быстрый способ, потому что он захватывает ближайший свет в мгновение ока. Без этого освещение было бы медленным, потому что сначала пришлось бы «пройти» все источники света, чтобы обеспечить правильное отображение.

Мы используем внутренние решения Nvidia практически в каждом компьютерном шейдере, который имеет отношение к трассировке лучей. Без этих решений наши шейдеры будут работать медленнее. Следующая оптимизация частично предоставляется пользователю из-за ранее упомянутых настроек качества. Мы называем эту оптимизацию «трассировка лучей с переменным временем». Как я упоминал ранее, количество лучей зависит от плитки размером 16x16 пикселей, которая должна быть в этой области. Это может быть как 256 лучей, так и четыре луча.

Решающим фактором здесь является коэффициент отражения BRDF - насколько он отвлечен, насколько он зеркально отражен, находится ли поверхность в тени или на солнце, какова плавность отражения. По сути, мы стараемся разумно определить место, где мы размещаем лучи компьютерных шейдеров, и сколько их должно быть в данном месте. В настоящее время мы также работаем над дальнейшим улучшением этого аспекта. Тем не менее, это не следует путать с затенением с переменной скоростью, о котором недавно объявила Nvdia.

Каковы дальнейшие планы оптимизации?

Ясин Улудаг: Одна из оптимизаций, которая уже встроена в BVH, - это использование «перекрывающихся» вычислений, то есть многих вычислительных шейдеров, работающих параллельно. Однако это не следует путать с асинхронным или одновременным расчетом.

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

Мы также планируем построить BVH, используя одновременный расчет во время фазы генерации G-буфера (G-Buffer), который позволит начать трассировку лучей намного раньше в кадре и переход G-буфера. Следы Ntrace показывают, что это может быть очень полезным. Это будет введено нами в будущем.

Текущая версия игры почти попала в другой патч - гибридную систему трассировки лучей / ray march. Создает MIP-карту по всей глубине буфера, используя фильтр MIN. Это означает, что каждый уровень достигает ближайшей глубины в областях 2x2 и повторяет ее, пока не будет достигнута самая низкая мип-карта. Поскольку он использует так называемый фильтр MIN, вы знаете, что во время навигации вы можете пропустить весь регион на экране.

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

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

С какими ограничениями (узкими местами) вы сталкиваетесь в этой реализации трассировки лучей?

Ясин Улудаг: На данный момент мы обнаружили несколько ошибок, которые эффективно препятствуют эффективному использованию оборудования, таких как ошибка с безумно расширяющимися ограничивающими прямоугольниками, которая создается функцией, реализованной для растеризатора, которая плохо работает с трассировка лучей. Мы заметили это, когда было слишком поздно.

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

(Обратите внимание, что мы используем диаграммы шейдеров и автоматически преобразуем каждый вершинный шейдер в вычислительный шейдер, точно так же, как любой пиксельный шейдер преобразуется в ударный шейдер, который срабатывает, если луч света попадает на прозрачную поверхность. При альфа-тестировании мы также можем создать хитовый шейдер , который может вызывать инструкцию IgnoreHit () вместо оператора clip () , которая, безусловно, будет запускаться альфа-тестом). Та же проблема возникает и с объектами, которые могут быть уничтожены, поскольку эти элементы также используют систему коллапса вершин.

Согласно спецификациям API, если вершины сворачиваются не на (0, 0, 0), а на (NaN, NaN, NaN), этот треугольник будет обойден, потому что «это не число». И здесь мы допустили ошибку, которая стоила нам немало нервов. К счастью, эта уязвимость уже устранена, поэтому мы можем ожидать очень значительного улучшения производительности на каждом уровне.

Другая проблема в коде запуска связана с тестированием альфа-геометрии, такой как растительность. Если вы выключите каждый тестируемый объект, трассировка лучей быстро ускорится, поскольку она работает только с непрозрачными поверхностями. «Непрозрачная трассировка лучей» работает быстро и потому, что мы собираем лучи, потому что расходящиеся лучи все еще могут быть дорогим оборудованием. В настоящее время мы ищем способы оптимизации каждого хит-шейдера для дальнейшего увеличения скорости этого процесса.

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

Мы также пытаемся уменьшить уровни LOD для геометрии, используемой в альфа-тестах, а также хотим ограничить использование памяти функцией альфа-шейдера, то есть захватить атрибуты вершин (используя наш ассемблер для вычислений). В заключение еще рано говорить, где именно узкое место на GPU появляется в целом. Во-первых, нам нужно исправить все ошибки и проблемы, которые мы знаем. После того, как мы собрали вместе все элементы оптимизации, мы можем начать искать узкие места в самом графическом процессоре и начать говорить о них.

Как добраться до источников проблем с производительностью?

Ясин Улудаг: Первоначально наши тесты программного обеспечения и тесты производительности вызывали проблемы из-за задержки обновления RS5 для Windows. Тем не менее, мы получили специальный шейдер от Nvidia, который позволил нам применить измеритель, который отслеживал циклы каждого пикселя, проведенного внутри TraceRay. Это позволило сузить места, из которых поступали капли эффективности, благодаря чему мы могли сразу изменить основной режим лучей вместо отражающих лучей, чтобы проверить, какие объекты являются «яркими». Мы отобразили результаты счетчика высокого цикла, так как счетчик светлого и низкого цикла стал темным, и затем мы внесли поправки для отдельных геометрий. Тогда деревья и растительность выросли в наших результатах как суперяркие.

Наличие этих показателей по умолчанию в D3D12 было бы большим преимуществом. Мы также хотели бы увидеть другие данные и записи о том, насколько «хорошим» был УСТАНОВКА «BVH» - ухудшился ли BVH после повторного ремонта и нужно ли их восстанавливать. Поверьте мне, люди, бегающие вокруг, могут очень быстро сломаться.

Они играют в игру, глядя на ее сложность и визуальные эффекты; мы не можем не упомянуть другие прорывные моменты, такие как премьера Crysis, Quake или введение пиксельного шейдера. Потребовалось время, чтобы новые технологии стали более эффективными. Идет ли DXR / RTX аналогичным путем?

Ясин Улудаг: Определенно! Со временем мы улучшим нашу трассировку лучей, потому что и у нас, и у Nvidia есть небольшая оптимизация как от движка, так и от водителя, поэтому мы все еще далеки от завершения работы.

Специалисты Nvidia и DICE работают над этими проблемами даже сейчас. Отныне это будет только лучше, потому что с момента выхода игры мы получили намного больше данных. Пока люди не прочитают это интервью, многие из этих улучшений уже будут реализованы и завершены. Как и в случае с Crysis и Quake, упомянутыми выше, работа над трассировкой лучей и первая игра с использованием этой технологии - настоящая честь.

Участие в таком прорывном событии в отрасли - это прекрасное чувство, и мы сделаем все от нас зависящее, чтобы предоставить вам наилучшие впечатления. Не волнуйтесь, наша страсть к трассировке лучей ужасно горячая!

Digital Foundry: Каковы реальные различия между вариантами низкого, среднего, высокого и ультра DXR?
В предыдущем разговоре с нами вы затронули тему поправок, которые должны появиться после Gamescom - какие есть в текущей версии игры?
Каковы дальнейшие планы оптимизации?
С какими ограничениями (узкими местами) вы сталкиваетесь в этой реализации трассировки лучей?
Как добраться до источников проблем с производительностью?
Идет ли DXR / RTX аналогичным путем?