August 25, 2020

Волшебные лучи: как рейтрейсинг изменил графику в играх

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

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

С трассировкой лучей разработчики экспериментировали еще в конце нулевых, но ресурсы требовались огромные — например, эта версия Quake Wars работала на 16 процессорах Intel Xeon

Рейтрейсинг нельзя назвать новой технологией — ее теорию разработали еще в 60-70 годы прошлого века, а в кинематографе начали использовать с 80-х. Однако при создании компьютерной графики для фильмов один кадр может рендериться часами на мощных системах, а для игр же нам надо рендерить не менее 30 кадров каждую секунду, да еще и на куда более дешевом домашнем компьютере или консоли. Поэтому неудивительно, что только сейчас стало появляться игровое железо, достаточно мощное для рейтрейсинга. Причем в упрощенной форме: почти все современные игры с поддержкой этой технологии все равно создают основной кадр при помощи растеризации, а RTX используют лишь для отрисовки теней, отражений и еще некоторых эффектов. Но и это позволяет добиться заметного роста в качестве.

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

Но давайте посмотрим, что эти технологии дают играм.

Control

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

А посмотреть есть на что. Честно говоря, когда год назад я проходил Control впервые на PS4 Pro, графика игры меня совсем не впечатлила. Хоть ее движок и считается очень хорошим даже в консольной версии, коридоры и залы Федерального бюро контроля, где происходят игровые события, трудно назвать красивым местом. Типовая мебель, типовые помещения — работа скорее на выбранный стиль, а не красоту.

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

Помимо отражений, намного лучше стали тени. Они более детальные, четкие, а там, где нужно — наоборот, мягкие. Само по себе это в глаза не бросается, но добавляет картинке реалистичности — например, предметы перестают выглядеть «оторванными» от пола.

Minecraft RTX (beta)

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

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

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

Конечно, за все приходится платить. Даже на топовых видеокартах Minecraft RTX пока идет в 1080p@60fps — разрешение 4К достигается только с помощью DLSS. Xbox Series X, более мощная из консолей следующего поколения, пока также показывает результат, близкий к 1080p@60fps. Конечно, что-то еще будет оптимизировано (даже на PC игра до сих пор находится в бета-статусе, что уж говорить о невышедших консолях), но будем реалистами — широко использовать трассировку пути скорее начнут в Pro-версиях консолей следующего поколения, а также в следующем (или через одно) поколении видеокарт. А может, даже и позже.

Quake 2 RTX

Раз уж речь зашла о трассировке пути, то упомянем еще одну игру с этой технологией — ремастер Quake 2, знаменитого шутера id Software. Логика здесь похожая: игра возрастом более 20 лет хорошо подходит для экспериментов из-за невысокой детализации. Тем более, что ремастеры сейчас в моде.

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

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

Metro Exodus

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

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

Deliver Us the Moon

Приключенческая игра про космонавта, который отправляется на Луну, когда-то ставшую главным источником энергии для человечества, но не так давно переставшую выходить на связь. От описанных выше проектов эта разработка отличается очень сильно. Здесь уже не было огромных бюджетов — перед нами просто приличное и качественно сделанное инди. Но рейтрейсинг разработчики также используют по полной программе, причем он очень хорошо улучшает «космический» сеттинг игры.

Осуществить желаемое им позволил движок Unreal Engine 4, который еще в прошлом году получил поддержку рейтрейсинга. UE4 используется не только в крупных проектах, но и очень популярен среди небольших разработчиков, так что ждем в будущем появления рейтрейсинга и в независимых играх. А также не забываем про маячащий на горизонте Unreal Engine 5 — в нем освещение стало заметно совершенней.

Что дальше?

Конечно, мы перечислили далеко не все игры с рейтрейсингом, которые существуют на данный момент. К списку можно добавить Shadow of the Tomb Raider, Wolfenstein: Youngblood, Call of Duty: Modern Warfare, Battlefield 5 и многие другие проекты.

Если смотреть на выходящие игры, то поддержка рейтрейсинга заявлена почти во всех будущих AAA-проектах: Watch Dogs: Legion, Assassin’s Creed Valhalla, Cyberpunk 2077, — а по слухам, RTX будет даже в онлайновой World of Warcraft: Shadowlands. Впрочем, далеко не везде эту технологию добавляют прямо на старте — например, Doom Eternal до сих пор не получил обещанный RTX-патч. Аналогичная ситуация и с Cyberpunk 2077 — полноценную поддержку рейтрейсинга разработчики обещают лишь в 2021 году. А вот Watch Dogs Legion на недавних пресс-демо уже щеголяла красивыми тенями и отражениями, и надо сказать, что в Лондоне недалекого будущего, с его многочисленными витринами и уличным освещением, рейтрейсинг смотрится очень к месту.

Не менее интересна и техническая сторона вопроса. Видеокарты NVIDIA RTX 20xx стали лишь первым семейством с поддержкой рейтресинга — и, конечно, они далеки от максимальных возможностей. При включении трассировки лучей зачастую приходится переходить на более низкое разрешение или уменьшать настройки, ну или включать DLSS. Плюс рейтрейсинг пока доступен только в топовых картах — массовый же игрок обычно покупает разные версии GTX 1650/1660.

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

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