Наши тесты Battlefield V с активной поддержкой RTX через DXR показали следующее: отражения, полученные через трассировку лучей, визуально впечатляют, но "съедают" порядка 50% производительности, частота кадров снижается соответствующим образом.
Сразу же было понятно, что мы имеем дело с ранней реализацией. Иногда отражения, рассчитанные с помощью трассировки лучей, оказывались скрыты из поля зрения геймера. Кроме того, настройки качества DXR между "Low" и "Ultra" оставались весьма "сырыми" и не всегда корректно работали.
Интервью с инженером рендеринга Ясином Улудагом (Yasin Uludağ), который потратил примерно год в DICE на реализацию эффектов трассировки лучей, пролило часть света на техническую реализацию. Настройка качества DXR влияет на эффекты двояко.
1. В зависимости от настройки, только определенная часть кадра рассчитывается через трассировку лучей.
2. В зависимости от настройки, в расчет включаются только поверхности, соответствующие определенным критериям отражения.
Ниже приведено более подробное описание настроек качества DXR.
- Low: 15% разрешения рассчитывается через трассировку лучей. Глянцевые поверхности с коэффициентом 0,9 и меньше не рассчитываются.
- Average: 23,3% разрешения рассчитывается через трассировку лучей. Глянцевые поверхности с коэффициентом 0,9 и меньше не рассчитываются.
- High: 31,6% разрешения рассчитывается через трассировку лучей. Глянцевые поверхности с коэффициентом 0,5 и меньше не рассчитываются
- Ultra: 40% разрешения рассчитывается через трассировку лучей. Глянцевые поверхности с коэффициентом 0,5 и меньше не рассчитываются
Коэффициент рассчитывается 3D-движком как свойство поверхности между 0,0 и 1,0. 0,0 соответствует абсолютно матовой поверхности, 0,2 - сухой асфальтовой дороге, 1,0 - зеркалу.
Так что DICE использовала данный коэффициент для определения поверхностей, к которым будет применяться трассировка лучей. Ниже представлены скриншоты с разным значением DXR: Low (слева) и Ultra (справа). Действительно можно видеть, что рассчитывается разное число поверхностей.
Но более важно количество лучей в виде процента от разрешения. Если взять 40% от разрешения при настройке Ultra DXR, то для UHD (3.840 x 2.160 пикселей) мы получим порядка 3,3 млн. лучей.
Настройка DXR | Low | Medium | High | Ultra |
1.920 x 1.080 | 311.040 лучей | 484.148 лучей | 655.257 лучей | 830.000 лучей |
2.560 x 1.440 | 552.960 лучей | 858.931 лучей | 1.164.902 лучей | 1.474.560 лучей |
3.840 x 2.160 | 1.244.160 лучей | 1.932.592 лучей | 2.6.21.030 лучей | 3.317.760 лучей |
В зависимости от разрешения и настроек качества DXR, рассчитывается разное количество лучей. В случае UHD мы всегда говорим о более чем миллионе лучей. В Battlefield V такое количество лучей заметно не только по производительности, но и по шуму, который меняется в зависимости от числа поверхностей, для которых рассчитаны отражения.
Лучше всего это видно на сцене, где поверхность воды занимает половину кадра. Ядра Tensor должны обеспечить контент для пикселей, которые не были рассчитаны. Но это оказывается возможным лишь до определенной степени, алгоритм начинает сбоить, когда не удается рассчитать слишком много лучей. Что видно по слишком большому количеству шума на поверхности воды под двумя кранами.
Возможные ограничения трассировки лучей
Еще раз отметим, что отражения в Battlefield V выводят игру на новый визуальный уровень качества. Даже без эффектов DXR картинка в Battlefield V смотрится отлично. Другой вопрос, так ли важны отражения. Но следует понимать, что различные графические эффекты дополняют друг друга, и в итоге мы получаем суммарный результат. Выделять какие-либо отдельные эффекты на общем фоне вряд ли разумно. В отдельной статье мы уже разобрали, как именно трассировка лучей сказывается на отдельных сценах.
Игра Battlefield V демонстрирует возможности эффектов DXR, но вместе с тем и ограничения технологии, причина здесь кроется в видеокартах. Современные системы показывают в два раза меньшую частоту кадров при включении эффектов DXR, причем реализация DXR при этом остается ограниченной. Разработчикам приходится ограничивать число поверхностей и объектов, которые рассчитываются через трассировку лучей, как и общее число лучей на кадр. Причем мы по-прежнему говорим об одном луче или семпле на пиксель. Конечно, было бы куда лучше получить несколько семплов на пиксель, но здесь сказываются аппаратные ограничения.
От проблемы первой реализации никуда не деться. DXR пока удается реализовать лишь частично, и не все эффекты освещения доступны. В Battlefield V разработчикам пришлось ограничиться отражениями, в Metro Redux акцент поставлен на глобальное освещение. Ни одна игра первого поколения не сможет дать все возможные эффекты DXR. Это просто нереалистично с точки зрения производительности.
В ближайшие месяцы будет понятно, в каком направлении продолжат развиваться технологии DXR/RTX. NVIDIA наверняка продолжит совершенствовать свои видеокарты, следующие за Turing архитектуры продолжат наращивать число ядер RT и Tensor. Смогут ли они дать достаточную производительность для игр в разрешении 3.840 x 2.160 пикселей с высокими настройками DXR - неизвестно. Но разработчики наверняка продолжат интегрировать все больше эффектов DXR. В ближайшие месяцы наверняка придется смириться с компромиссным балансом между качеством реализации DXR и доступной производительностью.