Обзор GDC 2024: трассировка путей, масштабирование и технология уничтожения ЦП
На этой неделе ReSpec немного отличается. Я провел неделю в солнечном Сан-Франциско на конференции разработчиков игр (GDC), бегая от встречи к встрече и пытаясь найти время, чтобы написать несколько слов.
Вместо обычной колонки мы решили опубликовать выборку записей из недавно выпущенного информационного бюллетеня ReSpec, посвященного тому, что я видел на GDC на этой неделе. Если вы хотите, чтобы один и тот же информационный бюллетень доставлялся на ваш почтовый ящик каждую неделю, подпишитесь сейчас и получайте эксклюзивный контент.
Отслеживание пути — это ложь
Возможно, слово «ложь» слишком сильное, чтобы его использовать, но трассировка пути довольно сложна, когда дело доходит до ее реализации в играх. Я присутствовал на сеансах трассировки пути в Cyberpunk 2077 и Alan Wake 2 на GDC, оба из которых описывали общий поток использования трассировки пути в игре, предназначенной для запуска в реальном времени с игровой частотой кадров. И это называется ReSTIR Direct Illumination.
Во-первых, как работает трассировка пути : мы берем пиксель и проводим от него линию от камеры. Он с чем-то сталкивается и отскакивает. И он продолжает двигаться, подпрыгивая по сцене, пока либо не уйдет в эфир, либо не закончится у источника света. Разработчикам нужны пути, заканчивающиеся у источника света, особенно для расчета теней.
Проблема в любом контексте реального времени заключается в том, что этот процесс чрезвычайно дорог. Вычисление всех этих лучей и всех этих отражений, несмотря на то, что будет использоваться лишь небольшое их количество, требует массу ресурсов. Вот почему трассировка пути так долго была автономной техникой — вам нужно вычислить возможные пути и усреднить их.
Это не относится к Alan Wake 2 и Cyberpunk 2077 . Для прямого освещения ReSTIR работает путем взвешивания источников света в сцене и выборки только некоторых из них. Затем эти образцы распределяются во времени (по кадрам) и в пространстве (с соседними пикселями). В случае с такой игрой, как Alan Wake 2 , некоторые огни имеют больший вес, например, синие и красные «кинематографические» огни, которые вы видите на вокзале.
В результате изображение создается гораздо быстрее, по крайней мере, настолько быстро, что вы можете играть в игру с разумной частотой кадров, со значительным увеличением масштаба и генерацией кадров.
Это интересный момент, и мы надеемся, что он станет более распространенным среди разработчиков титанов из Alan Wake 2 и Cyberpunk 2077 , которые поделятся своей работой.
Microsoft делает упор на апскейлинге
На GDC Microsoft наконец-то больше рассказала о DirectSR и даже сумела уговорить разработчиков AMD и Nvidia сесть за одну панель. Даже вместе! DirectSR — это не способ положить конец войнам за масштабирование, как мы изначально думали, но он предоставляет разработчикам единую основу для добавления в свои игры множества функций масштабирования.
Большая часть этого — входные данные. При взаимодействии с DirectSR существует стандартизированный набор входных данных, которые разработчики предоставляют интерфейсу прикладного программирования (API). Затем он может передавать эти входные данные встроенным модулям масштабирования, таким как AMD FSR 2, или вариантам, требующим специального оборудования, таким как DLSS от Nvidia .
Он мало чем отличается от собственной платформы Streamline от Nvidia, которая была создана для достижения чего-то подобного до того, как AMD решила не играть в мяч. Похоже, что Microsoft, будучи нейтральной третьей стороной в этой битве, смогла объединить всех.
Я до сих пор не уверен, как это будет выглядеть в играх. DirectSR пока недоступен даже разработчикам. Возможно, для конечных пользователей ничего не изменится, и мы по-прежнему видим несколько вариантов масштабирования в графических меню. Возможно, Microsoft обновит Windows, включив в нее универсальную опцию масштабирования в зависимости от имеющегося у вас оборудования. Пока неясно, но DirectSR должен облегчить разработчикам реализацию всех видов масштабирования в своих играх с помощью DLSS, FSR и Intel XeSS.
Один из плюсов, который изначально не был учтен, заключался в том, как эта система работает с обновлениями. Nvidia, AMD и Intel постоянно выпускают новые версии своей технологии масштабирования, которые незначительно улучшают качество изображения или слегка настраивают работу апскейлинга. Благодаря DirectSR разработчикам не нужно будет добавлять все эти обновления в свои игры — они просто будут работать через API.
Для меня это все плюсы. Апскейлинг был основным предметом разногласий, особенно для таких крупных релизов, как Starfield и Resident Evil 4 , которые при запуске поддерживали только один апскейлер. Единственным недостатком является генерация кадров. Похоже, что на данный момент это не предусмотрено для DirectSR, так что в будущем крупным графическим брендам еще придется много двигаться вперед и назад.
Смерть вашему процессору? Не совсем
Одним из самых интересных анонсов GDC в этом году стали Work Graphs . Я говорил об этом на прошлой неделе в информационном бюллетене, но более подробно рассмотрел рабочие графики во время конференции Microsoft DirectX State of the Union. Идея, стоящая за ними, состоит в том, чтобы снизить нагрузку на ваш процессор, позволяя вашему графическому процессору управлять своей собственной работой.
В разговоре есть еще один нюанс. Это дает вашему графическому процессору больше возможностей решать, что делать, подобно тому, как программируемые шейдеры впервые были представлены на видеокартах . Рабочий график состоит из узлов, и эти узлы могут создавать дополнительные узлы для работы вашего графического процессора, а не ждать работы от процессора. Microsoft описала его как вычислительный шейдер, который может запускать другой вычислительный шейдер.
Очевидным преимуществом, которое быстро поняли геймеры на ПК, было использование графического процессора. Microsoft объяснила, что нынешняя система требует глобальной точки синхронизации между графическим процессором и процессором. Это часто означает, что графический процессор, будучи устройством с высокой степенью параллельности, не работает в течение короткого промежутка времени в ожидании синхронизации.
Чего я не ожидал, как это отразится на памяти. Microsoft объяснила, что при текущем программировании в DirectX 12 вам придется использовать команду ExecuteIndirect, которая требует от вас хранения нескольких буферов. С рабочими графиками вам не нужно хранить эти буферы, поскольку графический процессор может начать свою собственную работу и продолжать генерировать работу самостоятельно.
Роберт Мартин из AMD продемонстрировал, насколько это важно, на примере сцены, требующей 3,3 ГБ памяти. При использовании Work Graphs использование памяти составило всего 113 МБ, что привело к небольшому приросту производительности. Как говорилось в презентации, «объем памяти зависит от размера графического процессора, а не от размера рабочей нагрузки».
Рабочие графики невидимы для конечных пользователей, но на самом деле это следующий рубеж графического программирования, и, как заявили AMD, Nvidia и Microsoft, это то, над чем разработчики работали годами. Меньшее использование памяти и более высокая производительность кажутся мне хорошими. Нам просто придется подождать, пока Work Graphs произведут фурор в реальных играх.