Помогают ли RT-ядра при обработке Lumen в Fortnite? Сравнение на примере GTX 1650S и RTX 3050

Пост опубликован в блогах iXBT.com, его автор не имеет отношения к редакции iXBT.com

В декабре 2022 года компания Epic Games добавила в свою королевскую битву технологии Lumen и Nanite, технологию "трассировки лучей" для всех. Самое интересное заключалось в том, что работает это даже на видеокартах в том числе и без поддержки RT. И не маловажным фактором является то, как же картинка с такими современными технологиями выглядит.


И для большей заинтересованности в примечании к релизу разработчики решили похвастаться работой новых методов освещения. Выглядит очень заманчиво и красиво, да так что скриншоты действительно заставляют захотеть погрузиться в эту графику и посмотреть на все красивости. Ведь доступно это всё на всех актуальных платформах, и с малюсенькой оговоркой, даже на самой слабой консоли поколения, - Xbox Series S. Так же разработчики подогрели интерес обещанием не только графики, но и высокого fps:

Превью материал
Автор: Epic Game Источник: www.fortnite.com

Технология Lumen создаёт реалистичные отражения с трассировкой лучей на глянцевых поверхностях и водной глади. Она также обеспечивает глобальное освещение в реальном времени при частоте 60 кадров/с.

Epic Games

Тестовый стенд

Помимо Lumen так же добавили ещё одну новую технологию: Nanute, которые мне не так интересно, по крайней мере в данном материале. И вопрос, а для каких таких настроек и на каком железе разработчики обещают эти самые 60 кадров в секунду? А помимо этого на ПК есть технология трассировки лучей, которая присутствует в игре чуть ли не с момента появления, которая может показать результат лучше. Но главный вопрос не в этом, а в том зачем такие графические навороты добавлять в игры, где людям нужна отзывчивость управления и больший FPS? Ответ на последний вопрос лежит как мне кажется на поверхности, - в случае с Fortnite это позволяет показать возможности движка другим компаниям. С остальным, хоть частично, но попробуем разобраться сейчас. 

Теперь к тому на чём будем тестировать. Общая часть тестового стенда состоит из:

  • Ryzen 3 3100
  • Gigabyte B450M S2H
  • 16 Gb DDR4 3600МГц
  • Sata SSD

Для начала, память разогнана явно не лучшим образом, но финальный вариант разгона отложен до того пока я не разберу идеи по статьям. Далее платформа, B450 имеет поддержку только PCIe 3.0, так что тем кто хочет сэкономить стоит иметь это в виду. Игра установлена на SSD Сrucial MX 500, с обзором которого можно ознакомится тут. Теперь к изменяемой части, видеокартам:

GTX 1650 Super RTX 3050
Кол-во CUDA 1280 2560
VRAM 4096 8192
ПСП, Гб/с 192 224
Версия DirectX 12_1 12_2
Штатное потребление, Вт 100 130
Версия PCIe (используется) 3.0 x16 (3.0 х16) 4.0 х8 (3.0 x8)

C обзором RTX 3050 и почему на ней всего 8 линий PCIe 3.0 можно ознакомиться тут, а с обзором GTX 1650S и R3 3100 тут. В остальном, предел Power Limit и максимальна допустимая температура выставлена на максимум который доступен в MSI Afterburner.


1650S
3050

Зачем тут две видеокарты, если можно было взять одну и проверить как просаживается производительность, тем более что в RTX 3050 есть RT ядра? Однако меня интересует вот что: помогают ли RT и тензорные ядра при обсчёте Lumen? Вот для этого и нужна GTX карта, проверим падение производительности будет больше или примерно сопоставимым?

Интересующие нас технологии требуют поддержки как минимум DirectX 12_0, следовательно выбираем его. Игра позволяет выбрать настройки пресетами, так что выбираем средний, для теста этого хватит за глаза. Но на средних настройках по умолчанию отключены интересующие нас технологии и их надо бы включить. И ещё один вопрос до начала тестов, посмотрите на настройки и найдите искомые технологии, Lumen и Nanite:

А теперь посмотрите внимательней:

Знаете в чём отличие? В первом случае в качестве игрового режима был выставлен "Творческий режим", а во втором "Королевская битва - Нулевая высота". Почему при игре в креативе забирают возможность посмотреть новые технологии вопрос открытый. Но технологии нашлись и получился средний пресет настроек, изменяемыми параметрами являются сглаживание, глобальное освещение, отражение, Nanite и RT (только для RTX 3050).Глобальное освещение и отражение изменяются одновременно.

Методика тестирования. В самом начале я думал проверить всё это в Творческом режиме, но из-за странностей с настройками я отказался от этого сразу. После этого я думал запускать игру, делать запись, менять настройки и заново переигрывать. Однако слишком большое кол-во внешних факторов, таких как изменение карты другими игроками, динамическое глобальное освещение на карте, погрешность от теста к тесту... Так что переходим к варианту №2: играется одна игра и тесты проводятся на записанной демке. Как это скажется на погрешности мне сказать сложно, но это будет на порядок точнее чем первый способ, погрешность которого я уже проверил на практике, сейчас посмотрим что даст нам втором вариант.

Тесты

Первый тестовый набор проходит со сглаживанием TAA и обеими видеокартами. 

Lumen+Nanite GTX 1650 Super RTX 3050 RT off RTX 3050 RT on
Средний fps 46,1 57,2 53,6
Максимальный fps 55,7 67,6 62,9
Минимальный fps 26,8 33,5 31,9
1% 21,7 35,2 36,5
0,1% 8,4 10,2 11,9
Технологии отключены GTX 1650 Super RTX 3050 RT off
Средний fps 126,2 151
Максимальный fps 149 179,7
Минимальный fps 67,5 85,5
1% 61 69,6
0,1% 10,4 16,9

Итого, если принят за 100% результаты с выключенными технологиями, то при включении Lumen на 1650S производительность по среднему фпс упала на 63,5%. На 3050 без RT производительность упала на 62,1, а если включить RT, относительно тестов без Lumen, то кадровая частота просядет на 64,5%. По первому тесту можно сказать что RT и тензорные ядра не сильно помогают RTX карте с обработкой Эпиковской технологией трассировки, однако Lumen и Nanit совместно сажают производительность так же как как и обычная трассировка, но с очередным нюансом о котором позже. И единственное где можно найти отличия, так это графика, которая теперь выглядит действительно красиво.

Но попробуем ещё одну добавленную технологию, - Temporal Super Resolution (Временное сверхвысокое разрешение). Вроде как разработчики заявляют следующее: "Временное сверхвысокое разрешение является улучшенным вариантом временного сглаживания в Fortnite и обеспечивает высококачественную графику без снижения частоты кадров." Кажется вот и ответ как разработчики хотели получить 60 кадров в секунду, упрощаем геометрию более низким разрешением, после чего апскейлим изображение временными технологиями. Само по себе временное сглаживание, или TAA, выдаёт хорошую картинку, при этом потребляя не так много системных ресурсов, что проверялось в данной статье. Nvidia в своё время представила сглаживание TXAA, разновидность временного сглаживания, а позже предложила технологию DLSS, которая опирается в том числе на временную реконструкцию кадра. Если разработчики из Nvidia смогли довести временные технологии до такого, то может и Epic Games смогли показать что-то значимое в TRS, при этом сохраняя кадровую частоту?


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

Lumen+Nanite GTX 1650 Super RTX 3050 RT off RTX 3050 RT on
Средний fps 36,8 49,2 47,1
Максимальный fps 43,3 56,8 54,4
Минимальный fps 24,8 33,4 32,3
1% 23,6 33,9 31,1
0,1% 11,4 9,4 10,8
Технологии отключены GTX 1650 Super RTX 3050 RT off
Средний fps 80 108,2
Максимальный fps 88,6 123,1
Минимальный fps 53,8 69,4
1% 57,8 59,8
0,1% 14,8 11,5

Ничего удивительного, TSR с исходным разрешением просаживает кадровую частоту, однако сбив его на ступеньку ниже и понизив исходное разрешение можно получить те самые 60 кадров, однако речь о другом. Вопрос данной статьи в том, помогают ли RT ядра при просчёте Lumen? GTX 1650 Super потеряла 54% производительности, в то время как RTX 3050 без RT недосчиталась 54,5%, а с RT уже 56,5%.  По двум тестам можно сделать вывод что Lumen не полагается на RT ядра, а трассировка лучей сажает производительность больше чем технология Epic Games. Или...

Болтология про настройки и технлогии

Сначала я не понимал что было в головах разработчиков когда они делали настройки графики и зашивали профили. Всё вышеописанное тестирование можно смело собрать в кучу и выкинуть, ведь когда я включал для тестов Lumen, я так же был ОБЯЗАН включить Nanite, без включения Нанитов параметры связанные с Lumen недоступны для выбора. Таким образом получается что в одном случае у нас работают две технологии, а во втором ни одной. И с трассировкой лучей весело, чтобы её включить я ОБЯЗАН включить хоть одну настройку связанную с Lumen, чтобы включить которую я ОБЯЗАН включить Nanit. Зачем? А вот так решили разработчики, хочешь получить массовую трассировку? Тогда включай ещё одну нашу технологию. Хочешь аппаратной трассировки, которая появилась задолго до lumen и  nanite? Не забудь их включить.

Но как бы ладно, если бы всё работало только когда надо. В игре, помимо отражений созданных с помощью RT или Lumen, присутствуют отражения создаваемые в экранном пространстве, т.е. что игрок видит то и отражается. Это лучше всего продемонстрировать на водной поверхности и окружающем ландшафте. На маршруте следования у меня по "случайному" стечению обстоятельств как раз присутствует река, на которой очень хорошо видно что же начудили Эпики. Из тестов RTX 3050 с TAA сделаем пару скриншотов и посмотрим. На картинках искомое явление может быть заметно не очень, так что можете посмотреть полную компиляцию всех тестов.

Заметили переход? Отражения в экранном пространстве работают постоянно, и не важно что мы используем, если позволите, более крутые технологии. И если в случае отражений создаваемых Lumen это действительно оправдано, ну там хозяйственное мыло а не динамические объекты, то вот настоящий Ray tracing создаёт картинку сопоставимую по качеству и непонятно зачем применять две технологии одновременно. Возможно это экономит ресурсы системы, либо это особенности отражений на водной поверхности. Но этот вопрос лучше отправить в Digital Foundry, я сейчас лишь констатирую факт: технологии работают, но не всегда и не везде.

Но если на ПК есть такие упрощения, как же всё работает на XBox Series S, или всё дело в той самой оговорке? Данная консоль нацелена на игру в 1920х1080, и для того чтобы производительность с новыми технологиями не улетела в тартары по данным DF:

…(XBox SeS - прим. авт.) теряет отражения на глянцевых поверхностях (например, на воде), разрешение некоторых эффектов ниже, а также уменьшены помехи от земли.

Ой как неожиданное, большую часть эффектов порезали или убрали, но и это ещё не всё. По данным всё тех же DF игра в среднем ренедерить картинку в разрешении 73% от 1080р, это примерно 788р, после чего апскейлит её до нативного разрешения. Но в некоторых случаях разрешение просаживается до 540р. Зато работает в 60 fps. И пока у меня закрадывалось некоторое понимание происходящего и я выдыхал перед тем как делать уже третий набор тестов, я погрузился в диванную аналитику. Самой близкой аналог чипа Xbox SeS по терафлопсам это Radeon RX 6400, однако данная карта гораздо хуже укомплектована: 48 TMU против 80 в XBox и 768 шейдеров против 1280 в консоли. Так что наиболее близкий чип на ПК это тот же Navi 24, но в составе уже RX 6500 XT: аналогичное число ROP, но всего 64 текстурника и 1024 шейдерных блока. Однако данный чип работает с частотой почти на 1ГГц выше, что частично нивелирует недостаток блоков и по сырым терафлопсам удаётся обойти консоль от Microsoft.

Так что посмотрим как данная карта справляется с "полноценным" Lumen. К сожалению тесты есть только с автоматическими пресетами, а Lumen включается на максимальных настройках, так что это тесты на максималках в FHD со сглаживанием TSR Epic на 66% рендера. И в таком режиме карта выдавала в среднем 30 fps, при этом постоянно прыгая от 27 до 35 кадров. Скорее всего если запустить Lumen на средне-низких настройках получить 60 кадров возможно.

6500XT в Fortnite
Автор: RoloTEC   Источник: www.youtube.com

Поняв подвох с данной технологией на консолях, я сел за более подробное изучение данного вопроса. Ещё раз пробежавшись по анализу данных технологий от Digital Foundri в поисках чего-то интересного, меня очень заинтересовала следующая формулировка: "Lumen is available in two flavours here, with software lumen ... hardware Lumen" (Lumen доступен в двух вариантах, программный lumen ... аппаратный lumen). Кажется это тот самый момент который я искал, - Epic Games добавили в свою игру аж два lumen, при чём аппаратный Lumen есть только на ПК. И раз есть аппаратная Lumen-трассировка то может активировать её, специальные ядра получат работу и тезис будет подтверждён? Окрылённый этой мыслю я пошёл изучать что это такое, но оказалось что "hardware Lumen" это обыкновенная трассировка, которая доступна на видеокартах RTX 2000, RX 6000 и новее, так что тезис удалось подтвердить только на половину: при аппаратной обработке Lumen специализированные ядра дают буст, ведь без них данную технологию банально не запустить. С аппаратной технологией разобрались, а с программной придётся повозиться.

Читая дальше документацию про отличия видов трассировки нашлась причина включать Nanite: технологии трассировки, и аппаратная и программная, полагаются на полигональную сетку, которую как раз создаёт "Виртуальная геометрия Nanite". Теперь понятно зачем нужна данная технология, это позволяет не производить одно и тоже действие дважды. Хотя почему не дают поиграть с RT без высококачественных текстур или зачем для аппаратной трассировки включать программную, я так и не понял.

Тесты №2

Ну вроде я готов делать полный перетест, так что по настройкам: всё тот же средний пресет с включённым Naite. Параметры которые изменяются это "Сглаживание", варианты так же TAA и TSR еpic, оба c исходным разрешением 100%, "Освещение" и "Отражения", Lumen высокий или эпический, и аппаратная трассировка для RTX 3050.

Начнём как и в пером случае с тестов при сглаживании TAA:

Lumen эпический GTX 1650 Super RTX 3050 RT off RTX 3050 RT on
Средний fps 30,7 45,9 43,7
Максимальный fps 37 55,9 51,8
Минимальный fps 19,5 31,3 30,7
1% 18,7 29,5 29,6
0,1% 8,1 10,9 11,4
Lumen высокий GTX 1650 Super RTX 3050 RT off RTX 3050 RT on
Средний fps 40,2 56,7 53,7
Максимальный fps 48 66,8 63,9
Минимальный fps 27,4 37,6 33,6
1% 19,7 39 36,6
0,1% 10,6 10,3 8,7
Lumen выкл. GTX 1650 Super RTX 3050 RT off
Средний fps 66,6 81,6
Максимальный fps 79,3 95,4
Минимальный fps 42,1 54,2
1% 38,9 50,5
0,1% 11,5 11,5

Итого, на 1650S при включении Lumen производительность упала на 39,6%, а при переводе его в "эпический" режим fps просел на 53,9%. Может быть сейчас, когда меняется только одна настройка, RT ядра в видеокарте Nvidia помогут ей? При программной трассировке на значении Высокое я не досчитался 30,5% производительности, а при Эпической настройке 43,7%. При сглаживании TAA видеокарта без специализированных блоков показала падение производительность на ~10% больше, в сравнении с падением производительности на 3050. Аппаратная же трассировка с Lumen на высоком уровне забирает 34,2% производительности, а при Эпическом Lumen 46,4%.

В начале меня интересовало какая погрешность будет от теста к тесту при тестировании на демозаписях и вот ответ, в случае с 3050 всё более менее сопоставимо, однако на 1650 есть отличия. Пункты которые можно сравнить это вторая таблица во втором наборе тестов и первая таблица в пером наборе тестов, и если взять данные оттуда, то падение производительности будет 30,8%. Однако забегая вперёд такая разница есть только в одном тесте, и скорее всего это связано с тем что не вся геометрия подгрузилась. Несколько раз, когда я это замечал, приходилось перематывать или перезапускать реплей целиком из-за того что объекты окружения не отрисовавались. Скорее всего дело именно в этом, и из-за бОльшей выборки во втором наборе и "некорректности" первого теста, я склонен опустить данный момент.

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

Lumen эпический GTX 1650 Super RTX 3050 RT off RTX 3050 RT on
Средний fps 27,7 40,8 39
Максимальный fps 33,1 48,4 45,8
Минимальный fps 18,1 28,7 26,6
1% 17,9 27,3 27,2
0,1% 10,7 11 10,8
Lumen высокий GTX 1650 Super RTX 3050 RT off RTX 3050 RT on
Средний fps 36,4 49,4 47
Максимальный fps 42,7 56,8 54,7
Минимальный fps 26,5 31,8 30,6
1% 23,5 34,9 33,8
0,1% 10,7 9,2 9,9
Lumen выкл. GTX 1650 Super RTX 3050 RT off
Средний fps 51,7 67,4
Максимальный fps 58,7 76,4
Минимальный fps 35,3 45,9
1% 34,3 44,2
0,1% 12,4 12,1

Software lumen на GTX видеокарте просаживает кадровую частоту на 29,6% и 46,4% соответственно. И самое важное: программные отражения и освещение сажают fps на 26,7% и 39,5%. Используя более сложное сглаживание и программную трассировку GTX теряет на 3% больше fps, при эпическом Lumen судя по всему уже сказывается недостаточная мощность графического чипа. Ну и к менее интересному, RT просаживают кадры в секунду на 30,3% и 42,1%.

Вывод

Итого. Как бы это очевидно не звучало, но программная трассировка по качеству хуже чем аппаратная, при этом требует схожих мощностей. Но за возможность опробовать хоть какую-то трассировку, при этом не имею специализированной карты, Epic Games стоит сказать спасибо. Данное решение лучше технологии DXR, которая позволяла запустить трассировку на GTX картах, хотябы в том что позволяет играть не в слайд-шоу, однако качество хромает. При этом специализированные блоки частично показали своё преимущество, RTX карта во втором тестовом наборе теряла в процентном отношении меньше GTX'а, хотя некоторые оговорки есть, но о них в конце. Теперь к Radeon, на которых из-за особенностей архитектуры и новых консолей ситуация будет отличатся, ведь сейчас идёт заточка под GPU консолей девятого поколения, в основе которых как раз и лежит архитектура AMD RDNA _ (какая там конкретно архитектура улучшенная RDNA 1/1,5/порезанный 2.0 решайте сами).

Хотя RX 6500XT проигрывает по кадровой частоте , однако в тесте который я нашёл были явно завышены настройки и там просто тестировали карту в игре. Тем более что честное сравнение ПК против консоли провести практически невозможно: на консолях "оптимизируют" некоторые настройки, что приводит к тому что на ПК минимальный пресет оказывается выше чем некоторые настройки на консолях. Здесь главное что трассировка лучей становится нормой для консолей, и с некоторыми упущениями получается запускать её в стабильные 60 кадров. А раз трассировка есть на консолях и её внедряют в основные мультиплатформенные движки, то повсеместность ей так или иначе обеспечена. Но остаются всё те же вопросы реализации и оптимизации трассировки или её аналогов.

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

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

Касательно того какие в тесте есть задатки к дополнительным изысканиям: используемые текстуры высокого разрешения на RTX 3050 игра могла занимать до 5,3Гб видеопамяти, так что для подобного сравнения заместо GTX 1650 лучше бы подошла GTX 1660 на 6Гб, ведь эта карта относится к среднему сегменту, имеет самую свежую архитектуру и достаточный объём видеопамяти. По RTX 3050 что-то сказать сложнее, но из-за достаточного объёма памяти урезанная шина врятли смогла оказать сколь существенное влияние. На это так же указывает стабильная частота чипа и потребление, которые из-за недостатка данных вполне могли снизится.