Почему мы решили делать сервис облачного гейминга на видеокартах AMD

image-loader.svg

Рынок облачного гейминга в России развивается ударными темпами. Здесь у нас и Loudplay, и MY.GAMES Cloud (ех. Playkey), GFN.ru. Мобильные операторы связи тоже находят свою выгоду и заключают партнерские соглашения с перечисленными сервисами, запуская собственные проекты. Так поступила «Вымпелком», запустив Beeline Gaming, а вслед за ней — МТС, Мегафон и Tele2. Особых проблем запуск таких сервисов не доставляет — ведь они реализованы на основе платформ партнеров, которые давно отлажены и работают как нужно.

Год назад мы в Playkey стали частью MY.GAMES, вложив технологию своего облачного сервиса в основу MY.GAMES Cloud. Все это время сервис находится в состоянии soft launch. А недавно объявили о своем партнерстве с AMD, в рамках которого адаптировали протокол передачи видеопотока сервиса и будем тестировать видеокарты AMD Radeon™ RX 6700 XT на своих серверах. В чем профит этого партнерства для конечного пользователя, почему мы остановились именно на AMD, а не NVIDIA с их мощной трассировкой лучей, а также о том, насколько эта технология критична для игр, запускаемых через стриминговые сервисы, разбираемся в статье.

Что такое Radeon RX 6700 XT: характеристики и бенчмарки

Radeon RX 6700 XT — наиболее бюджетное решение новой 6000-й линейки видеокарт AMD, рассчитанное на комфортную игру в разрешении 1440p в случае растеризации и Full HD с трассировкой лучей. Строится видеокарта на базе 7-нм архитектуры RDNA 2 и обладает всеми характерными для нее преимуществами в виде аппаратной трассировки лучей и прочих функций API DirectX 12 Ultimate, нового кэша Infinity Cache, AMD FidelityFX, улучшенного доступа к видеопамяти Smart Access Memory, 12 ГБ памяти в противовес максимальным 10 ГБ у NVIDIA и многого другого.

По данным AMD, в играх без рейтрейсинга Radeon RX 6700 XT обгоняет GeForce RTX 3060 Ti и где-то RTX 3070. Впрочем, в зависимости от поддержки AMD или NVIDIA разработчиков конкретных игр, соотношение сил здесь может быть несколько различным. Тем не менее, результаты тестов подтверждают, что для комфортной игры в 2.5К Radeon RX 6700 XT вполне подходит. 

image-loader.svg

Что же касается игры через облако, благодаря индивидуальной настройке энкодера под оборудование игрока и комплексу механизмов для борьбы с потерями данных, таких как помехоустойчивое кодирование, пользователь практически защищен от потери пакетов, а вместе с ними от лагов, фризов и «мыльной» картинки. А значит, внешний вид игры на локальном ПК и в облаке практически идентичен. Посудите сами: здесь игра в DOOM при максимальных настройках и качественном устойчивом интернет-соединении происходитна Core i3, 4 GB RAM, MSI GeForce GTX 750:

Смотреть видео

Что подразумевается под «качественным соединением»? Скажем, на нашем сервисе MY.GAMES Cloud рекомендованы следующие параметры скорости:

  • 10 Мбит/сек для запуска игр в 30 FPS, HD (1280×720);

  • 15 Мбит/сек — 30 FPS, Full HD (1920×1080);

  • 20 Мбит/сек — 60 FPS, Full HD (1920×1080);

  • 25 Мбит/сек — 120 FPS, Full HD (1920×1080).

Логично возникает вопрос: главный тренд передовых AAA-проектов — трассировка лучей, о которой все так много говорят, — как она будет ощущаться при игре в облаке в Full HD?  

Ответить на него чуть сложнее, потому как у GPU NVIDIA под эту задачу выделены отдельные ядра для real-time вычислений, а технология DLSS только снижает нагрузку от трассировки. Но так ли это существенно на заре 2022 года, когда игр с рейтрейсингом вышло еще не так много, и насколько реально в принципе получить full path-tracing в 4K и 60 FPS даже на локальном ПК — в этом мы разберемся далее.

Трассировка лучей в современных играх — must-have для геймеров?

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

Впервые этот алгоритм был описан Артуром Аппелем из IBM в 1968 году. И уже начиная с 1970-ых годов благодаря CG-специалистам из Lucasfilm, CalTech и других компаний трассировка лучей стала стандартом в индустрии кино и компьютерной графики для создания реалистичного освещения в изображениях. Однако до 2018 года почти вся трассировка лучей выполнялась оффлайн — и даже сегодня CGI в кино требует обширных специализированных серверных ферм на CPU. При этом рендериться один такой кадр может минутами, часами и даже днями, если речь идет о какой-то исключительной детализации. Такой роскоши у видеоигр, требующих частого обновления кадра здесь и сейчас, просто нет.

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

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

image-loader.svg

Первая программная трассировка лучей — вышедшая в 2009 году NVIDIA OptiX — была реализована как раз-таки с ускорением на GPU. В течение следующего десятилетия OptiX демонстрировала неуклонный рост скорости, обеспечиваемый сменой поколений графических процессоров NVIDIA.

Программную трассировку лучей с ускорением на GPU поддержала и Microsoft, в начале 2018 года представив DXR, который обеспечивает полную поддержку программного обеспечения NVIDIA RTX для трассировки лучей через Microsoft DXR API. Одновременно с ними на помощь в задачах рейтрейсинга пришли специальные тензорные ядра RT, позволившие NVIDIA снизить скорость обработки алгоритмов трассировки в 6 раз в случае RTX 2080 про сравнению с предыдущей GTX 1080 Ti. Затем ту же практику переняла и AMD, начав самостоятельную работу над этой технологией.

Наибольшим откровением трассировка лучей стала, пожалуй, с ее релизом в Minecraft и Quake II, где на фоне довольно примитивной графики улучшенная технология освещения возводит общую картинку на совсем другой уровень. Смотрите:

Смотреть видео

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

Возьмем, к примеру, Shadow of the Tomb Raider. Конечно, с трассировкой лучей тени становятся более естественными. Но если сравнить картинку с включенной трассировкой и ее отсутствием, разница не кажется столь существенной. При этом сравним падение FPS с включенной трассировкой лучей и без нее: 100 до 60 (либо 120 до 70) — почти в два раза:

Смотреть видео

То же самое в плане детализации можно увидеть на скриншотах со сравнением трассировки лучей в трех режимах и при отключенной совсем. Найдите 10 отличий:

image-loader.svg

Другой пример — Metro Exodus. Здесь первый скриншот выполнен с включенной трассировкой лучей, второй — снят без нее:

image-loader.svgimage-loader.svg

И она же в динамике:

Смотреть видео

Напоследок, DOOM Eternal. И снова разница между режимами с включенной и выключенной трассировкой лучей если и видна, то далеко не в каждом кадре:  

Смотреть видео

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

Здесь стоит оговориться: когда мы говорим о трассировке лучей в современных киноблокбастерах, речь идет о так называемой технологии full path tracing — полной трассировки пути. На самом деле в рейтрейсинге есть множество других методов:

  1. Тени с трассировкой лучей (именно так она реализована в Shadow of the Tomb Raider);

  2. Глобальное освещение с помощью трассировки лучей (как в Metro Exodus);

  3. Отражения с помощью трассировки лучей (например, в Wolfenstein Youngblood).

Святой Грааль трассировки лучей — полная трассировка пути, включает все эти методы. Однако стоит помнить, что чем сложнее метод, тем больше затраты на производительность. Даже в случае Minecraft и Quake II с их довольно примитивной графикой. Взглянем, к примеру, на это видео:

Смотреть видео

Падение FPS более чем в 3 раза до значения 35–40 кадров в секунду — сами понимаете. В таком случае ни о каком 4K лучше не вспоминать вовсе.

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

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

Но неужели все действительно так плохо в программным рейтрейсингом?

Хотя тензорные ядра дают хороший буст ускорению трассировки лучей на топовых видеокартах, развитие софтового рейтрейсинга на этом не остановилось. Так, в 2019 году на конференции GDC Crytek представила демо Neo Noir, показывающее возможности версии движка CryEngine 5.7, позволяющей теперь производить расчет отражений через трассировку лучей. Вот оно:

Смотреть видео

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

Со слов Crytek, реализация Neon Noir не зависит от аппаратного обеспечения и «будет работать на большинстве современных графических процессоров AMD и NVIDIA, тогда как другие методы трассировки лучей обычно привязаны к решениям на GPU с выделенными ядрами RT». Для программного обеспечения он использует DirectX 11 в качестве API, поэтому теоретически любая современная карта с его поддержкой может использовать Neo Noir.

Посмотрите, как справляется с трассировкой лучей Neon Noir предшественница RX 6700 XT, RX 5700:

Смотреть видео

Впоследствии Crytek представила бенчмарк Neon Noir. Приведем результаты тестов ресурса WCCFTech на видеокартах предыдущих поколений — ведь если Neon Noir позиционируется как технология, которая отлично справляется с рейтрейсингом даже на старых видеокартах без RT-ядер, интересно посмотреть на бенчмарки именно для них:

image-loader.svgimage-loader.svg

Как видно, в разрешении Full HD при максимальных настройках качества графики с задачей справляются действительно все протестированные видеокарты, если принимать за стандарт значение выше 30 FPS. Что же касается 1440p, ситуация ожидаемо хуже, однако по той же планке в 30 FPS проходит даже самая слабая из видеокарт. 

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

Подводя итоги

Итак, мы рассмотрели множество различных реализаций трассировки лучей на обширном пуле карт обоих конкурирующих производителей — AMD и NVIDIA — и даже затронули вопросы программного рейтрейсинга. И можно прийти к выводу, что в большинстве случаев нет существенной разницы, играешь ли ты на RX 6700 XT, RTX 3070 или даже RTX 2080, если речь идет о клауд-гейминге. 

Поэтому RX 6700 XT — оптимальное решение для игр в 1440p в разрезе клауд-гейминга, которое в рамках нашего партнерского соглашения с AMD поможет снизить косты на содержание оборудование. Как следствие, сервис станет доступнее для конечного пользователя: увеличится количества серверов, а вместе с ним — географический охват.

© Habrahabr.ru