Найти тему
VK Play

Все, что нужно знать о главных 3D-технологиях современных игр

Оглавление

Рассказываем о фишках новых игровых движков и о том, зачем на самом деле нужна трассировка лучей

Рассказываем о фишках новых игровых движков и о том, зачем на самом деле нужна трассировка лучей

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

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

Самые современные технологии требуют самых современных видеокарт. Далеко не каждый ПК покажет все красоты Cyberpunk 2077. На помощь придет облачный сервис VK Play Cloud. Расположенные по всей России серверы могут транслировать на любой компьютер видеопоток игры, запущенной на мощном железе с высокими или максимальными настройками. Поддерживаются любые игры из популярных лаунчеров — от Steam и EGS до Battle.Net и EA App.
Достаточно подписаться на подходящий тариф, купить игру в любом магазине и запустить ее согласно инструкции.

Трассировка лучей в реальном времени

-2

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

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

Half-Life Ray Traced
Half-Life Ray Traced
Оригинальное освещение 1998 года
Оригинальное освещение 1998 года

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

Некоторые игры уже строят изображение без привычной растеризации, пользуясь только трассировкой пути. Например, Minecraft RTX и Quake II RTX. Выбор проектов объясняется сложностью самого алгоритма — полноценно реализовать его, заменив другие методы, пока можно только в играх с простой графикой.

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

Отражения

-5

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

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

Многим кажется, что качественные отражения в играх появились давно. В пример приводятся вода в Half-Life 2, глянцевые полы в God of War и даже зеркальная комната в Super Mario 64. Но реализованы они были различными ухищрениями, которые сегодня только усложнят разработку.

Например, клонированием геометрии. В этом случае зеркало — портал в комнату с зеркальным расположением объектов. Движку приходится рендерить сразу два помещения, а значит и нагрузка на систему удваивается. Этот метод изредка можно встретить и сегодня, но в очень простых сценах. Например, в видении Кэла в Star Wars Jedi: Fallen Order на планете Зеффо.

-6

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

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

Quantum Break — один из ранних примеров использования SSR вместе с физически корректными материалами
Quantum Break — один из ранних примеров использования SSR вместе с физически корректными материалами

Самый простой и популярный современный метод — отражения в экранном пространстве (SSR — screen space reflections). Он работает очень быстро, легко внедряется в любой движок, а результаты иногда не уступают даже трассированным отражениям. До тех пор пока SSR не сталкивается с зеркалами.

Если персонаж стоит к зеркалу спиной, то вместо затылка отражается еще одно лицо — ведь именно оно попадает в экранное пространство. Из-за этого разработчики просто убирают зеркала или делают их максимально грязными. Отсюда и жалобы игроков на то, что даже в Duke Nukem 3D были зеркала (реализованные клонированием), а в современных играх почти отсутствуют.

-8
-9

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

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

Lumen и другие виды освещения трассировкой лучей

-10
-11

В современных играх сохраняется проблема с непрямым (отраженным) освещением. Если солнце светит на лужайку, то все понятно — куда солнце попало, там светло. Но если свет попадает в темную комнату без окон, то там, куда не проникают прямые лучи, может быть кромешная темнота. Ситуацию исправляет RTGI (RTXGI) — Ray Traced Global Illumination. Трассировка позволяет рассчитывать отраженный свет для всего помещения.

Впервые технологию представили в Metro Exodus, а из свежих примеров — обновление «Ведьмака 3». Выглядит очень здорово, но обе игры рассчитывают только одно отражение лучей света, потому что с каждым последующим фотоны теряют свою энергию и все меньше и меньше влияют на изображение.

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

В Metro Exodus: Enhanced Edition, вышедшем через два года после оригинала, 4A Games сделала систему глобального освещения с практически бесконечными отражениями света путем накопления сохранения информации о предыдущих отражениях.

Изображение со множеством отражений стало выглядеть гораздо правдоподобнее и ближе к первоначальной задумке дизайнеров. Производительность же выросла настолько, что RTGI стал возможен даже на консолях, пусть и в упрощенном виде, а видеокарты GeForce RTX перестали быть обязательным требованием.

-12
-13

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

Главное достоинство Lumen — доступность. Любой может скачать дистрибутив Unreal Engine 5 бесплатно и при наличии навыков сделать игру, CGI-мультфильм или реалистичный 3D-рендер. Xbox Game Studios обещала использовать UE5 в большинстве новых игр, и даже студии, которые всегда делали собственные движки — Crystal Dynamics, CD Projekt RED и GSC Game World, — создают новые проекты на технологии Epic Games.

Виртуализированная геометрия и Nanite

-14

Одна из главных фишек DirectX 12, которую до сих пор мы практически не видели в играх, — виртуализированная геометрия. Как обычно устроены 3D-модели в играх? Каждый объект состоит из крошечных треугольников — полигонов. Для экономии ресурсов на отдалении от персонажа игрока подгружаются упрощенные модели. Чем предмет или персонаж ближе, тем они детализированнее.

У такого подхода есть недостатки:

  • Упрощенные модели надо делать вручную, хотя некоторые движки могут частично автоматизировать процесс;
  • Дистрибутив игры должен содержать множество моделей и ее дубликатов, а также быстро и незаметно подгружать их;
  • LOD0 (модель с максимальной детализацией) может быть слишком детализирована для некоторых разрешений экрана и расстояния от объекта до игровой камеры — это впустую расходует ресурсы ПК.

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

Идея виртуализированной геометрии лежит в основе технологии mesh shaders в DirectX 12 Ultimate и Vulkan, но до Epic Games, создавшей алгоритм Nanite в UE5, никто не мог реализовать эту функцию в выпущенной игре. Хотя схожие вещи описывала как Ubisoft для Assassin’s Creed Unity, так и DICE для Dragon Age Inquisition.

-15

Nanite решает вышеперечисленные проблемы и обладает собственными преимуществами:

  • Автоматическая генерация моделей с оптимальной детализацией и текстурами;
  • Использование моделей и текстуры в максимально доступном качестве без предварительной оптимизации — например, фотограмметрические сканы;
  • Возможность отказаться от карт нормалей, создающих только видимость более детализированной поверхности, и использовать модели с действительно большим количеством полигонов;
  • Сокращение размера сжатых моделей — по словам Epic, примерно в 7 раз;
  • Если модель недостаточно детализирована, то Nanite сам делает «разбиение поверхности» — метод, который используется для создания дополнительных геометрических деталей;
  • Игрок не видит резких переходов в детализации моделей, которые случаются при смене LOD’ов старыми методами.

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

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

-16

Конечно, Nanite — не волшебная палочка. Он не работает с деформирующимися объектами. В демо The Matrix Awakens, если машина получает повреждения, то движок заменяет ее на обычную модель без поддержки Nanite. Это касается и моделей персонажей, потому что тела живых существ и их одежда постоянно двигаются, растягиваются и сжимаются.

Но рано или поздно игровые студии подхватят эту идею и реализуют в собственных движках. Мы увидим больше игр с виртуализированными моделями и текстурами, а пока Nanite можно попробовать в Fortnite на всех платформах и в The Matrix Awakens на консолях.

Виртуализированные карты теней

Движки большинства современных игр рендерят изображение «от лица» источника света — если камера «не видит объект», то он должен быть в тени. Так каждый источник света рисует свои карты (маски) теней. Чем выше их разрешение, тем четче и детализированнее тени.

-17

В реальности тени могут быть и размытыми (мягкими) — в зависимости от размера источника света, его расстояния как до объекта, который отбрасывает тень, так и до поверхности, на которую тень падает.

Чтобы реализовать подобное в играх, придумали каскадные тени. Одновременно рендерят несколько карт теней, размывают их в зависимости от расстояния и накладывают друг на друга. Такой подход применяется в большинстве современных игр.

-18

Виртуальные карты теней (Virtual Shadow Maps, VSM) работают по тому же принципу, что и Nanite. Разрешение теней зависит от разрешения экрана. Это позволяет делать контактные тени максимально резкими и детализированными, а смягчение отдаленных — естественным.

Главная особенность виртуальных карт теней — независимость от расстояния до объекта и его размера. В играх очень часто отсекают тени мелких деталей — почвы, травы, кустов, оружия в руках героя — и очень далеких — деревьев и гор на горизонте. VSM все равно, какого размера объект. Если он на экране и должен отбрасывать тень, то он будет отбрасывать тень.

Виртуальные карты теней пока работают только в Unreal Engine 5, хотя методика изучается давно. Со временем они появятся и в других движках, возможно, даже в лучшем виде, как это часто происходит в игровой индустрии. Например, та же трассировка лучей для теней дает физически корректные результаты без использования карт теней вообще. Этот подход удобнее в сложных сценах, где много источников света.

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

Влияние SSD на загрузку текстур

-19

SSD (твердотельные накопители) сейчас стоят и в настольных компьютерах, и в портативных устройствах вроде Steam Deck или ноутбуков, и в игровых консолях Xbox Series X|S и PlayStation 5. SSD позволяют подгружать новые данные в оперативную и видеопамять с очень высокой скоростью, кратно превосходящей старые жесткие диски.

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

Это возможно благодаря моментальному отклику, высокой скорости твердотельных накопителей, а также новым методам сжатия. PlayStation 5 по умолчанию использует алгоритм Oodle Kraken, который практически удваивает пропускную способность встроенного SSD при помощи аппаратного декодирования. Схожая функция есть и у Xbox Series.

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

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

-20

Технология Microsoft DirectStorage позволяет использовать мощности видеокарты для разархивирования файлов игры прямо в видеопамяти. К сожалению, пока алгоритм используется только в игре Forspoken, но в будущем можно ожидать, что игры станут не только мгновенно загружаться, но и использовать более высококачественные текстуры и модели.

DirectStorage и обязательное наличие SSD могут привести и к появлению более разнообразных моделей, потому что их будет проще загружать в игру. Уже сейчас разработчики зачастую отказываются выпускать некоторые DLC для PS4-версий, потому что переделывать архивы ради очередного костюма — слишком сложная работа. А на PS5 таких проблем нет.

Машинное обучение и генерация контента

Алгоритмическая генерация контента в играх существует очень давно. В Diablo генерировались подземелья, в Soldier of Fortune — карты, а в No Man’s Sky — практически все содержимое игры. Однако во многих играх остаются одинаковые, словно клонированные NPC.

В Unreal Engine 4 и 5 появился «генератор людей» Metahumans, который можно использовать для создания и главного героя, и важных NPC, и случайных прохожих внутри игры.

-21

Машинное обучение все чаще используют для повышения разрешения — апскейла — текстур. Обычно в фанатских ремастерах, но иногда и в официальных ремейках вроде Grand Theft Auto: The Trilogy – The Definitive Edition.

NVIDIA представила бесплатную программу RTX Remix, которая позволит перехватывать обращения игры к старым графическим API вроде DirectX 9, конвертировать текстуры, модели и анимации в стандартный формат USD (Universal Scene Description), после чего заново рендерить сцену при помощи трассировки пути на платформе NVIDIA Omniverse.

Именно так создан ремастер Portal with RTX, из которого умельцы уже вычленили файлы RTX Remix и вставили в другие игры.

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

Физика и интерактивность

Игрок зачастую взаимодействует с миром игры взрывами и суперспособностями, поэтому разработчики не тратят ресурсы на проработку таких мелочей, как деформация объектов или разрушение деталей.

В Metal Gear Solid 2: Sons of Liberty разбивались бутылки, а кубики льда постепенно таяли на барной стойке. Это было в 2011 году на PlayStation 2. В Grand Theft Auto IV и Star Wars: The Force Unleashed в 2008 году деревянные и стеклянные предметы разлетались на щепки и осколки соответственно. В 2009 году физически корректный дым рассеивался от взмахов плаща Бэтмена в Batman Arkham Asylum на ПК. Куда все это делось?

Никуда не делось. NVIDIA интегрировала прорывной для своего времени физический движок PhysX в свои видеокарты. Игры используют его редко, потому что его самые интересные возможности доступны только для владельцев видеокарт NVIDIA, а AMD Radeon и игровые консоли остаются не у дел, что ограничивает охват аудитории.

Технология Euphoria из The Force Unleashed и GTA IV больше не лицензируется сторонним разработчикам, зато включена в движок Rockstar RAGE. А мелкие детали уровня Metal Gear Solid 2 все еще можно встретить в некоторых играх, если разработчики сознательно потратят время на их создание.

Центральные процессоры Xbox One и PlayStation 4 во многих ситуациях слабее чипов Xbox 360 и PS3. Но Xbox Series и PS5 с процессорами на основе AMD Zen 3 и новая гонка вооружений между AMD и Intel на ПК снова возвращают сложную физику в игры.

В Counter-Strike 2 появится объемный физический корректный дым, который можно разгонять взрывами и выстрелами. Тот самый, что был реализован в Batman Arkham Asylum 14 лет назад при помощи PhysX. Если вы играли или смотрели прохождения Half-Life Alyx, то знаете, что движок Source 2 хорош взаимодействиями предметов в физическом пространстве.

Может показаться, что Unreal Engine 5 — самый продвинутый игровой движок. И на сегодня отчасти это правда, но рано или поздно его догонят, а в каких-то областях и перегонят технологии других разработчиков. DICE, Guerrilla Games, Crytek, Rockstar Games, Sucker Punch Productions, Playground Games, Square Enix и другие видят те же презентации. Они работают на теми же проблемами современных игр и ищут альтернативные решения.

«Команда DirectX усиленно работает над новыми функциями; мы расскажем больше в ближайшие месяцы! Тем временем наши чудесные партнеры расскажут на GDC о DX12 и наших технологиях, о чем мы напишем в твиттере на этой неделе — следите за обновлениями!»
«Команда DirectX усиленно работает над новыми функциями; мы расскажем больше в ближайшие месяцы! Тем временем наши чудесные партнеры расскажут на GDC о DX12 и наших технологиях, о чем мы напишем в твиттере на этой неделе — следите за обновлениями!»

Команда DirectX 12 уже обещает анонсировать новые графические функции в ближайшие месяцы. Они плотно сотрудничают с NVIDIA, AMD, Intel и разработчиками игр. Нам остается только ждать и наблюдать, как новые технологии делают игры интереснее и красивее.

Заглавное изображение: Petri «Berduu» Levälahti