Проблемы рейтрейсинга в играх нового поколения: анализ трассировки лучей в ремастере Marvel’s Spider-Man

в 8:32, , рубрики: Без рубрики

Проблемы рейтрейсинга в играх нового поколения: анализ трассировки лучей в ремастере Marvel's Spider-Man - 1

По мере приближения запуска нового поколения консолей Insomniac Games начала публиковать больше материалов, раскрывающих подробности о Marvel’s Spider-Man и Marvel's Spider-Man: Miles Morales. Оба проекта задействуют технологию трассировки лучей. На взгляд Алекса Баттальи из Digital Foundry, выглядит она очень достойно, если не сказать, что превосходно. Для старта — весьма недурно.

Тем не менее, читая комментарии в Интернете, он столкнулся с немалым количеством критики по отношению к реализации технологии, а также к частоте и разрешению кадров. Поэтому в новое видео Digital Foundry он решил представить своего рода пособие по трассировке лучей на консолях следующего поколения и объяснить, почему в Marvel's Spider-Man она выглядит именно так.

Итак, обо всем по порядку. Давайте обсудим, для чего именно нужна трассировка лучей в Marvel’s Spider-Man на PS5.

При частоте кадров 30FPS с разрешением 4К трассировка лучей выглядит замечательно. При этом, как заведено в играх Insomniac, динамическое разрешение может использоваться, а может и нет. Здесь трассировка лучей применяется для отражений в игре, подобных тем, которые видны на дверях машин.

Проблемы рейтрейсинга в играх нового поколения: анализ трассировки лучей в ремастере Marvel's Spider-Man - 2

Или на этом скриншоте, где герой и город вдалеке отражаются в окне здания.

Проблемы рейтрейсинга в играх нового поколения: анализ трассировки лучей в ремастере Marvel's Spider-Man - 3

Согласно пресс-релизу, трассировка лучей также используется для фонового затенения (Ambient Occlusion, AO). Его труднее определить на скриншотах или в видео. Как правило, AO имитирует тени от непрямого освещения в тех областях, куда свету, отражающемуся в окрестностях сцены, труднее добраться.

Проблемы рейтрейсинга в играх нового поколения: анализ трассировки лучей в ремастере Marvel's Spider-Man - 4

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

Проблемы рейтрейсинга в играх нового поколения: анализ трассировки лучей в ремастере Marvel's Spider-Man - 5

Отражения показываются в разрешении 1080p, тогда как остальная часть изображения — в 4K. Комментаторы жалуются, например, на то, что листья в отражении более редкие либо вовсе отсутствуют по сравнению с теми, которые можно увидеть на «реальном» дереве. Или что некоторые внутриигровые объекты, такие как автомобили или пешеходы, могут не показываться в отражениях. Или на отсутствие теней. Или на пренебрежение мелкими деталями, например, на костюме Человека-паука.

Проблемы рейтрейсинга в играх нового поколения: анализ трассировки лучей в ремастере Marvel's Spider-Man - 6

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

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

Проблемы рейтрейсинга в играх нового поколения: анализ трассировки лучей в ремастере Marvel's Spider-Man - 7

Разделим процесс работы с трассировкой лучей на четыре шага. Допустим, нам нужно уложиться в 8 мс для создания отражений для игры на 30 FPS при разрешении 4K.

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

На втором этапе мы запускаем лучи в структуру, созданную на первом.

Проблемы рейтрейсинга в играх нового поколения: анализ трассировки лучей в ремастере Marvel's Spider-Man - 8

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

На следующем этапе происходит затенение попадания или выбор цвета пикселя.

Проблемы рейтрейсинга в играх нового поколения: анализ трассировки лучей в ремастере Marvel's Spider-Man - 9

Чем больше попаданий затеняется или чем сложнее затенение, тем больше времени потребуется на этот шаг.

Проблемы рейтрейсинга в играх нового поколения: анализ трассировки лучей в ремастере Marvel's Spider-Man - 10

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

Проблемы рейтрейсинга в играх нового поколения: анализ трассировки лучей в ремастере Marvel's Spider-Man - 11

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

Проблемы рейтрейсинга в играх нового поколения: анализ трассировки лучей в ремастере Marvel's Spider-Man - 12

Одна из первых оптимизаций, к которой мы прибегнем, — уменьшение разрешения для трассировки лучей. Таким образом мы ограничим количество выходящих лучей и сократим время, необходимое для второго и третьего шага.

Проблемы рейтрейсинга в играх нового поколения: анализ трассировки лучей в ремастере Marvel's Spider-Man - 13

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

Проблемы рейтрейсинга в играх нового поколения: анализ трассировки лучей в ремастере Marvel's Spider-Man - 14

Посмотрим на скриншот из демо The Ghost Runner с включенной трассировкой лучей с разрешением 4K на видеокарте RTX2060 Super. Здесь мы видим некоторые отличия по сравнению с «Человеком-пауком». Unreal Engine 4, на котором создана игра, использует метод трассировки лучей чуть более дорогой по времени, но физически более точный, чем в «Человеке-пауке».

Проблемы рейтрейсинга в играх нового поколения: анализ трассировки лучей в ремастере Marvel's Spider-Man - 15

RTX 2060 Super работает аналогично RTX 2070, имеет такую же пропускную способность шины памяти, как и у PS5, и такой же ее объем — 8 ГБ. RTX 2060 Super, скорее всего, станет отличной отправной точкой для сравнения с графическим процессором PlayStation 5.

Проблемы рейтрейсинга в играх нового поколения: анализ трассировки лучей в ремастере Marvel's Spider-Man - 16

Когда сцена вместе с отражениями рендерится в 4K, а количество самих отражений на экране столь невелико, как в случае со статичной лужей выше, графический процессор едва укладывается в 30 FPS. Если бы в сцене было больше динамики, частота кадров определенно была бы меньше. Уменьшение осевого разрешения трассировки лучей на 50% и, таким образом, общего разрешения до 1080p увеличивает производительность примерно на 27%, оставляя свободные ресурсы в графическом процессоре для повышения частоты кадров до 30 FPS.

Проблемы рейтрейсинга в играх нового поколения: анализ трассировки лучей в ремастере Marvel's Spider-Man - 17

В других сценах можно увидеть более впечатляющие результаты. Как, например, здесь. Отражающая стеклянная поверхность занимает почти весь экран. В этом случае отражения с исходным разрешением 4К приводят к частоте кадров 21 FPS. При этом понижение разрешения отражений до 1080p увеличивает частоту кадров на 58% до 33 FPS при необходимых 30 FPS.

Таким образом, на графическом процессоре с такой же производительностью, что и у PS5, необходимо использовать отражения с трассировкой лучей с более низким разрешением для возможности поддерживать постоянной частоту кадров 30 FPS при общем разрешении 4К. Тогда становится понятным, почему для снижения стоимости трассировки лучей в «Человеке-пауке» будут использоваться отражения только при 1080p.

Проблемы рейтрейсинга в играх нового поколения: анализ трассировки лучей в ремастере Marvel's Spider-Man - 18

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

Давайте попробуем сократить время первого шага, уменьшив динамичность либо количество объектов, по отношению к которым будет выполняться трассировка лучей. Так, на показанных ранее скриншотах некоторые динамические объекты могли отсутствовать в отражениях. Или здесь, в геймплейном видео Miles Morales, в массовых сценах порой можно заметить, что некоторые из NPC не отражаются на поверхностях.

Проблемы рейтрейсинга в играх нового поколения: анализ трассировки лучей в ремастере Marvel's Spider-Man - 19

По опыту других разработчиков мы знаем, что прорисовка множества персонажей на экране может оказаться очень ресурсоемкой. Например, отрисовка некоторых сцен в Metro Exodus с большим количеством персонажей на RTX 2080 Ti занимает более 4 мс. В нашем случае это окажется половиной отведенного бюджета.

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

Проблемы рейтрейсинга в играх нового поколения: анализ трассировки лучей в ремастере Marvel's Spider-Man - 20

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

Например, взглянем на эти скриншоты Battlefield V.

Проблемы рейтрейсинга в играх нового поколения: анализ трассировки лучей в ремастере Marvel's Spider-Man - 21
Проблемы рейтрейсинга в играх нового поколения: анализ трассировки лучей в ремастере Marvel's Spider-Man - 22

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

Проблемы рейтрейсинга в играх нового поколения: анализ трассировки лучей в ремастере Marvel's Spider-Man - 23

Возвращаясь к нашему кадру из «Человека-паука», мы видим, что в отражениях видны объекты, находящиеся очень далеко. Вероятно, было бы очень неприятно, если бы объекты на горизонте отсутствовали в отражениях или постоянно мигали, то появляясь, то исчезая.

Проблемы рейтрейсинга в играх нового поколения: анализ трассировки лучей в ремастере Marvel's Spider-Man - 24

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

Проблемы рейтрейсинга в играх нового поколения: анализ трассировки лучей в ремастере Marvel's Spider-Man - 25

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

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

image

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

Проблемы рейтрейсинга в играх нового поколения: анализ трассировки лучей в ремастере Marvel's Spider-Man - 27

Теперь мы почти вписываемся в бюджет кадра, но все еще немного его превышаем.

Проблемы рейтрейсинга в играх нового поколения: анализ трассировки лучей в ремастере Marvel's Spider-Man - 28

Последняя оптимизация может быть сделана на третьем шаге, где мы используем затенение.

Вернемся снова к нашему скриншоту. Заметили ли вы отсутствие мелких деталей в отражении костюма Человека-паука? Которые видны на его настоящем костюме? Если мы упростим материал в отражении, потребуется меньше времени на его прорисовку.

Проблемы рейтрейсинга в играх нового поколения: анализ трассировки лучей в ремастере Marvel's Spider-Man - 29

В этом нет ничего такого, ведь многие игры, использующие трассировку лучей, такие как Wolfenstein: Youngblood, прибегают к тому же приему.

Проблемы рейтрейсинга в играх нового поколения: анализ трассировки лучей в ремастере Marvel's Spider-Man - 30

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

Проблемы рейтрейсинга в играх нового поколения: анализ трассировки лучей в ремастере Marvel's Spider-Man - 31

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

Автор: Pixonic

Источник


* - обязательные к заполнению поля


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js