Это полностью программное решение, которое не использует DXR или функции аппаратной трассировки лучей в API Vulkan, поэтому оно не может использовать ни одно из преимуществ этих API, вроде ядер RT в архитектуре Turing от NVIDIA или даже любое другое эквивалентное оборудование AMD в перспективе. Благодаря тому, что метод работает на основе вычислительных шейдеров через DX11, он совместим почти с любым оборудованием. Однако даже при наличии аппаратных блоков ускорения, как известно, трассировка лучей весьма требовательна в играх вроде Battlefield V или Quake 2 RTX.
Neon Noir идёт на несколько ухищрений для поддержания производительности на приемлемом уровне, и их важно упомянуть. Первым является расстояние, на котором объекты, составленные из треугольников, фактически отслеживаются лучами. Ограниченное расстояние отражений от треугольников более очевидно при более длинных дистанциях, поэтому объекты, находящиеся дальше на расстоянии, обрабатывают свои отражения с помощью кубических карт или отслеживания воксельных конусов, что делает их явно менее детализированными и динамичными.
Вторая область оптимизации касается типа отражений, которые представлены — поверхности, которые являются более шероховатыми, но всё же отражающими, не получают отражений на основе RT. Последние используются только для более зеркальных поверхностей: примерно так работают низкие и средние настройки RT в Battlefield V, ограничиваясь только более зеркальными поверхностями.
Ещё одна оптимизация заключается в том, что некоторые объекты трассируются с помощью менее подробных, менее полигональных их версий. В демонстрации есть яркая сцена отражённых гильз, но если присмотреться, можно увидеть, что в отражении они гораздо менее закруглены, чем реальный объект — это позволяет экономить ресурсы. Дополнительное повышение скорости достигается за счёт метода обработки рекурсивных отражений: отражений отражений, если угодно. Насколько можно судить, здесь используются более простые кубические карты — это естественно, потому что данный тип эффекта сложно выполнить даже с аппаратным ускорением.
Последней областью очевидной оптимизации является разрешение, в котором визуализируются отражения на основе RT. Neon Noir включает предустановки сверхвысокого и очень высокого качества, причём в первом варианте используются отражения в четверть разрешения: например, 1080p в сцене 4K. Очень высокие меняют соотношение ещё более радикально — возможно, до одной восьмой родного разрешения. Демонстрация использует очень сильную фильтрацию, так что точные подсчёты затруднены.
Сама демонстрация сделана расчётливо, для облегчения вычислительной задачи: закрытая улица с небольшим количеством движущихся объектов благоприятствует настройке выбранного Crytek конвейера рендеринга. Конечный результат всё ещё очень впечатляющий и выглядит в движении отлично, особенно с включённым режимом сверхвысокого качества RT. Среда, созданная для демонстрации, является прекрасным показателем возможности учёта закадровой информации: все эти неоновые вывески и лужи появляются в отражениях и не исчезают при движении камеры — что, безусловно, происходит при отражениях в обычном режиме растрирования.
Neon Noir не только отлично выглядит, но и работает хорошо, что видно по приведённым таблицам тестов. При разрешении 1440p на максимальных настройках NVIDIA GeForce RTX 2070 Super и RTX 2060 Super способны большую часть демонстрации показывать 60 кадров/с, а RTX 2060 — чуть ниже этого. Наибольшие провалы происходят в тех случаях, когда экран заполняется отражающими поверхностями, такими как гильзы на земле. При этом RTX 2080 Super работает на скорости выше 60 кадров/с даже в самых тяжёлых сценах.
При изменении настроек трассировки лучей до очень высоких значений несколько меняется баланс сил. Более мощные ускорители NVIDIA Turing демонстрируют увеличение производительности примерно на 15 %, как в случае с RTX 2070 Super, а AMD RDNA — на 19 %. Но даже при таком увеличении производительности RTX 2070 Super и RX 5700 XT, обычно выступающие равнозначными соперниками, по-прежнему демонстрируют сильные различия в производительности, которые не совпадают с обычными показателями в играх без RT. Таким образом, некоторые архитектуры больше подходят для этого стиля трассировки лучей по сравнению с другими, но в целом данный метод определённо предпочитает оборудование NVIDIA. Стоит напомнить, что в этой демонстрации ядра RT в чипах Turing никак не затрагиваются.
В конечном счёте, результаты любопытны и заставляют задуматься о будущем трассировки лучей в целом. Как технология AMD RDNA будет выполнять подобные задачи, когда получит аппаратные блоки трассировки лучей в будущих картах Navi или на консолях следующего поколения? API, методы и драйверы будут отличаться, поэтому результаты спрогнозировать сложно.
Но ясно одно: технология CryEngine, поддерживающая этот вид отражений на основе RT, очень интересна. По словам самой Crytek, в перспективе методика может быть расширена на модели глобального затенения и тени. В краткосрочной перспективе хотелось бы, чтобы метод был перенесён на DirectX Raytracing и Vulkan Ray Tracing, чтобы использовалось неизбежное в будущем аппаратное ускорение.
В то же время концептуально Neon Noir является захватывающей демонстрацией. Crytek рекомендует GTX 1070 или Vega 56 в качестве графических процессоров начального уровня для достойной производительности, но, поскольку она основана на DX11, то работать будет почти на любом ускорителе. Опробовать её может каждый желающий, скачав с официального сайта (требуется установка клиента службы Crytek).