Оглавление

Отражение смерти. Как Hitman 3 использует трассировку лучей

Крутые технологии с невероятными системными требованиями

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

Лысина с зеркальным блеском



RT-отражения в Hitman 3 не просто красивы, но и активно используются в геймплее. Порой бывает полезно видеть то, что происходит у героя за спиной, чтобы понимать заметит ли кто-то незаконные действия главного героя или нет. Если раньше это было возможно только в тех редких комнатах, в которых стоят установленные разработчиками зеркала, то теперь почти все стеклянные и металлические предметы становятся действующими зеркалами.



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

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



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



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



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



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



Сами зеркала работают так же как они работали раньше — в отведенных местах есть виртуальные камеры, которые проецируют свое изображение в текстуру (render to texture). Этот подход имеет плюсы, потому что в RT-отражениях используется не полное, а упрощенное освещение для экономии производительности, тогда как сцены с зеркалами уже оптимизированы под отражения. Хромированные краны и золотая рама отражают белые умывальники — безусловно, мелочь, но добавляет целостности изображению.

Но какой ценой?



Стоит только включить в Hitman 3 эффекты трассировки лучей, как становится понятно, почему IO Interactive так долго тянула с добавлением их в игру. В 4К фреймрейт падает с почти 200 до 30-40 FPS даже на i9-12900K и GeForce RTX 3090. Происходит это из-за огромного количества хитрых оптимизаций, которые сделали разработчики для Hitman 3 — убирали объекты из памяти, когда они пропадают из виду, использовали упрощенные модели, уменьшали фреймрейт анимации для дальних персонажей. Одна из самых требовательных настроек в Hitman 3 — это дальность прорисовки. Максимальные значения требуют очень серьезный многоядерный процессор и большую мощную видеокарту вне зависимости от разрешения просто из-за безумного количества моделей, их скриптов и взаимодействий, которые приходится рендерить движку.

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



Впрочем, какие-то оптимизации все еще работают. IO Interactive не используют RT для зеркал и некоторых объектов, которым они не нужны.



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



Когда вы включаете RT-отражения, то настройка отражений теперь управляет ими, а не отражениями в экранном пространстве. На High отражения включают практически все объекты, но с упрощенным освещением, на Medium объектов становится меньше, особенно вдалеке, на Low отражаются далеко не все персонажи, а их детализация оставляет желать лучшего — модели используются очень низкого качества.

Вместе с RT в игру добавили и пару апскейлеров — AMD FSR 1.0 и NVIDIA DLSS 2.3. С первым все понятно — он просто рендерит изображение в низком разрешении, масштабирует и накладывает увеличение резкости. Жаль, что FSR 2.0 в игру пока не завезли, поэтому NVDIA DLSS приходится отдуваться за обе команды.



Однако не все так хорошо как может показаться. Hitman 3 — один из худших примеров имплементации DLSS. Игра сохраняет алиасинг и временную нестабильность на многих объектах (посмотрите на раму зеркала на примере выше), прибавка производительности мизерна по сравнению с внутренним разрешением рендера. Например, в в 4К DLSS Ultra Performance восстанавливает изображение из 720p — это разрешение в 9 раз ниже финального, но фреймрейт всего лишь удваивается.



Также мы заметили ОГРОМНОЕ количество глюков векторов движения. Игра очень часто «теряет» необходимые для DLSS (и FSR 2.0, если технологию добавят в игру) векторы, поэтому большую часть времени движение выглядит нормально, а периодически, но с завидной стабильностью движущиеся объекты начинают оставлять временные следы там, где они были. Посмотрите на мух: справа они выглядят примерно так, как должны, кроме двух крайних, но через секунду они могут выглядеть как на скриншоте слева. А потом через пару секунд снова нормально. Это может произойти с любым объектом в игре — с мухами, с персонажами, с самим 47’ым (присмотритесь к его лицу на скриншоте с зеркалом). Возможно, движок Glacier 2 периодически сбрасывает векторы движения в рамках оптимизации, что непозволительно для реконструкции изображения. В теории, это можно исправить патчем.

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

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

С другой стороны, RT-тени почти ничего не дают, а удар по производительности от отражений просто фантастический даже на топовом игровом железе. Серия Hitman уже много лет использует железо даже самых мощный компьютеров на полную ради создания интересных игровых ситуаций с тысячами NPC, но теперь становится понятно, сколько черной магии программистов уходит на то, чтобы все это работало на консолях прошлого поколения и не самых новых компьютерах. Однако серия Hitman устаревает элегантно, поэтому RT-отражения — хороший повод вернуться к Hitman 3 через несколько лет на более мощном ПК или консоли.

Обсудить