Что такое трассировка лучей и как она изменит игры? | ENBLE

Что такое трассировка лучей и как она изменит игры? | ENBLE

Ray tracing – это техника освещения, которая придает играм дополнительный уровень реализма. Она эмулирует способ, которым свет отражается и преломляется в реальном мире, создавая более правдоподобную среду, чем это обычно видно при использовании статического освещения в более традиционных играх. Но что такое ray tracing на самом деле? И, что еще важнее, как это работает?

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

Виртуальные фотоны

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

Игры без ray tracing полагаются на статическое “прожаренное” освещение. Разработчики размещают источники света внутри среды, которые равномерно излучают свет в любом заданном виде. Кроме того, виртуальные модели, такие как NPC и объекты, не содержат информации о другой модели, требуя от графического процессора вычисления поведения света во время процесса визуализации. Поверхностные текстуры могут отражать свет, чтобы имитировать блеск, но только свет, излучаемый статическим источником. Ниже приведено сравнение отражений в GTA V в качестве примера.

Изображение использовано с разрешения правообладателя

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

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

Тем не менее, свет можно определить как поток фотонов. Чем больше фотонов, тем ярче воспринимаемый свет. Отражение происходит, когда фотоны отскакивают от поверхности. Преломление происходит, когда фотоны – которые движутся по прямой линии – проходят через прозрачное вещество и линия перенаправляется или “склоняется”. Уничтоженные фотоны могут восприниматься как “поглощенные”.

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

Ray tracing в Minecraft делает огромную разницу. Мэтью Смит / ENBLE

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

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

В играх вы управляете одной камерой, которая всегда находится в движении и всегда меняет точку зрения, особенно в быстро движущихся играх. В CGI- и играх с ray tracing графический процессор не только должен расчитывать, как свет отражается и преломляется в любой заданной сцене, но он также должен расчитывать, как он захватывается объективом – вашей точкой зрения. Для игр это огромное количество вычислительной работы для одного компьютера или консоли.

К сожалению, у нас до сих пор нет персональных компьютеров, которые могут действительно рендерить графику с использованием ray tracing с высокой частотой кадров. Вместо этого у нас теперь есть аппаратные средства, которые могут эффективно обманывать.

Давайте будем реалистами

Фундаментальное сходство ray tracing с реальной жизнью делает его крайне реалистичной техникой трехмерной визуализации, даже делая блочные игры, такие как Minecraft, выглядят почти фотореалистично в правильных условиях. Есть только одна проблема: это крайне сложно имитировать. Воссоздание способа работы света в реальном мире является сложным и ресурсоемким процессом, требующим огромной вычислительной мощности.

Вот почему существующие варианты трассировки лучей в играх, такие как трассировка лучей Nvidia на основе RTX, не являются реалистичными. Они не являются настоящей трассировкой лучей, при которой каждая точка света симулируется. Вместо этого GPU “обманывает”, используя несколько умных приближений, чтобы достичь похожего визуального эффекта, но без такой большой нагрузки на аппаратное обеспечение.

Большинство игр с трассировкой лучей сейчас используют комбинацию традиционных методов освещения, обычно называемых растеризацией, и трассировки лучей на конкретных поверхностях, таких как отражающие лужи и металлические изделия. Battlefield V – отличный пример этого. Вы видите отражение войск в воде, отражение местности на самолетах и отражение взрывов на кузове автомобиля. В современных 3D-движках можно показывать отражения, но не с таким уровнем детализации, как в играх, например Battlefield V, при включенной трассировке лучей.

Трассировка лучей также может быть использована для создания более динамичных и реалистичных теней. Вы можете увидеть это великолепное воздействие в Shadow of the Tomb Raider.

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

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

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

Аппаратное обеспечение для трассировки

Изображение используется с разрешения правообладателя

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

Теперь все карты RTX поддерживают трассировку лучей, и самые последние GPU серии RTX 40 имеют еще один способ повысить производительность. SER или Shader Execution Reordering доступен на RTX 4090 и RTX 4080, и Nvidia говорит, что он может увеличить производительность на 25% в играх с трассировкой лучей. Он работает путем изменения порядка обработки инструкций трассировки лучей GPU, оптимизируя задачу для доступной вычислительной мощности.

Хотя начальные дни трассировки лучей были непростыми, последние карты от Nvidia показывают гораздо лучшую производительность. С появлением SER в следующем поколении, а также DLSS 3, мы можем увидеть трассировку лучей, которая не снижает частоту кадров. Nvidia новый DLSS 3.5 обещает также улучшить трассировку лучей с помощью Ray Reconstruction.

Метод трассировки лучей от Nvidia – не единственный вариант. Также существуют пост-обработочные эффекты Reshade “трассировки пути”, которые обеспечивают сопоставимую визуализацию без такого большого снижения производительности.

У AMD теперь также есть варианты для трассировки лучей, о которых мы расскажем далее.

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

Хотя трассировка лучей в основном сосредоточена на ПК, она начинает проникать и в другие устройства. Недавно Apple объявила, что чип A17 Bionic iPhone 15 способен аппаратно ускорять трассировку лучей, включая в играх.

Что насчет AMD?

Изображение используется с разрешения правообладателя

AMD в последние несколько лет испытывала затруднения с обеспечением аппаратного ускорения трассировки лучей, но это изменилось с выпуском RX 6800, 6800 XT и 6900 XT. Эти новые карты поддерживают трассировку лучей DirectX 12 и обеспечивают отличную производительность, даже если AMD несколько уступает Nvidia в отношении трассировки лучей (для получения более подробной информации ознакомьтесь с нашими сравнениями RX 6800 XT против RTX 3080 и RX 6900 XT против RTX 3090).

Это вряд ли вызывает удивление, учитывая, что архитектура Big Navi, на которой работают видеокарты RX 6000 от AMD, является первым поколением ускорения трассировки лучей. Это та же архитектура, которая используется в визуализации на PlayStation 5 и Xbox Series X, ориентированная на более низкий уровень общей производительности по сравнению с флагманскими картами Nvidia. Однако, поскольку трассировка лучей является выдающейся особенностью консолей нового поколения, мы ожидаем лучшей поддержки и оптимизации в будущем. В ближайшем будущем мы увидим дебют AMD FidelityFX Super Resolution (FSR) для игровых ПК, а также последние версии Microsoft Xbox.

Как можно увидеть трассировку лучей дома?

Изображение используется с разрешения правообладателя

Вам понадобится недавняя — и дорогая — видеокарта, чтобы увидеть трассировку лучей дома. Аппаратное ускорение трассировки лучей доступно только на видеокартах Nvidia RTX или на видеокартах серии RX 6000 от AMD. Карты серии GTX 10 и 16 поддерживают трассировку лучей, но не имеют RT-ядер, чтобы обеспечить комфортную играбельность.

Если вы планируете играть в разрешениях выше 1080p и с частотой кадров 60 fps или выше, вашей лучшей ставкой будет приобрести видеокарту топового уровня. При разрешении 4K лучшими картами являются RTX 3080 и RX 6800 XT, но вы можете обойтись RTX 3070 или RX 6800, если готовы перейти на разрешение 1440p в некоторых играх.

На рынке есть ограниченный выбор игр с трассировкой лучей, но их количество растет. Лучшие примеры трассировки лучей включают ранние демонстрации RTX, такие как Battlefield V, Shadow of the Tomb Raider и Metro Exodus. Более новые игры, такие как Control и MechWarrior 5: Mercenaries, также выглядят убедительно. Stay in the Light — это независимая игра ужасов, созданная с использованием трассировки лучей для теней и отражений. Переиздание Quake II с трассировкой лучей RTX — это еще один фантастический пример.

На рынке меньше игр с трассировкой лучей, но отрасль растет. Поскольку PlayStation 5 и Xbox Series X начинают рекламировать трассировку лучей, конкуренты вскоре последуют. Мультиплатформенная игра Watch Dogs 2 отличается от новой Watch Dogs: Legion, так как новая игра использует трассировку лучей на консолях и компьютерах.

Попробуйте использовать Port Royal для трассировки лучей от UL Benchmark, чтобы определить, будет ли ваш ПК работать с трассировкой лучей.