Crysis – одна из самых требовательных игр за всю историю, и она способна подтормаживать даже сейчас, в эпоху гораздо более мощного оборудования. Но это не остановило одного модмейкера, Паскаля Гилхера, от попытки зайти еще дальше и добавить в игру трассировку пути. На данный момент мод немного уступает такому же моду для Minecraft, но результаты все равно впечатляют.
Используемый Паскалем фильтр ReShade (альфа-версия будет доступна тем, кто поддержит проект на Patreon) пытается добавить в игру глобальное освещение на основе трассировки пути. Да, в теории такую технологию можно добавить к любой игре, не только к Crysis. Но более старые игры вроде Crysis являются для этого идеальными кандидатами, и EuroGamer вместе с DigitalFoundary опробовали мод сами – в режиме кооператива, чтобы различия были еще заметней.
До сих пор не совсем ясно, как это фильтр совершает свою магию. ReShade применяет свои фильтры после рендеринга сцены и улучшает внешний вид игры – добавляет SMAA для лучшего сглаживания, SSAO для более реалистичных теней, глубины резкости и так далее. ReShade подключает динамические библиотеки в DirectX или OpenGL, предоставляя доступ к информации о цветах и глубине, но для трассировки лучей, как правило, нужно гораздо больше данных.
Например, трассировка лучей (или пути) требует доступа к геометрическим данным сцены, после получения которых фильтр рассчитывает пересечения лучей и треугольников, чтобы отобразить тени, отражения, глобальное освещение и многое другое.
Этот “фильтр ReShade для трассировки пути” в данном случае делает акцент на глобальном освещении, но он не является фильтром для трассировки пути или лучей в традиционном смысле. У него нет доступа ко всем геометрическим и другим данным, без которых подобная трассировка невозможна. Кроме того, фильтр даже не пользуется помощью полезных для трассировки лучей технологий – вроде RT-ядер на видеокартах Nvidia RTX. Если бы пользовался, ему бы потребовалось применение технологии DirectX Raytracing (DXR) или Vulkan-RT, что вызвало бы проблемы с играми вроде Crysis, для работы которых нужен DirectX 9/10/11. Вместо этого расчеты производятся с использованием традиционных шейдеров, которые симулируют трассировку пути.
Да, все это может казаться немного непонятным, и детального объяснения пока нет. Я написал Паскалю, чтобы попытаться получить более понятное объяснение, и в случае его ответа выйдет отдельная новость. Из имеющейся информации можно предположить, что фильтр использует данные об экранном пространстве и делает приблизительно то же, что и настоящая трассировка лучей, особо не снижая при этом производительности и позволяя применять фильтр к уже существующим играм. Если это так, более подходящим названием для подобной “трассировки пути” будет что-то вроде “трассировка лучей экранного пространства” – по крайней мере, это похоже на вторую версию SSRTGI от Uniqen, который используется в бенчмарке Superposition.
Как бы то ни было, этот ReShade-фильтр заставляет 11-летний Crysis выглядеть даже лучше, чем раньше. Отчасти причина в том, что Crysis вышел еще до того, как технологии вроде глобального освещения вообще были придуманы. Это была первая игра с использованием фонового затенения, пытающегося сделать окружающие объекты менее “плоскими”, а уровень освещения и теней у солдат был сделан на качественно новом уровне. Главное, не ждите от игры улучшения производительности – “трассировка пути” и другие подобные вещи делают Crysis еще более требовательным.