Скоро для игры Final Fantasy VII Rebirth от Square Enix выйдет мод Shader Injector, созданный моддером Дэвидом Матосом. Этот мод призван внедрять модифицированные шейдеры непосредственно в API рендеринга игры, обеспечивая тем самым визуальные улучшения.
Несколько дней назад Матос опубликовал демонстрацию, показывающую обновленную версию пиксельного шейдера направленного света (Deferred Directional Light Pixel Shader) движка UE4. Были обновлены BRDF шейдера, а моддер также добавил трассировку лучей теней в экранном пространстве (screen space ray traced shadows) и микротени для повышения общего качества графики в Final Fantasy VII Rebirth. Объекты, ранее исключенные из карт теней, теперь могут быть заполнены упомянутыми SSRT-тенями, что делает окружение более цельным и реалистичным.
Матос также опубликовал подробное техническое объяснение своей работы. По его словам, игровое освещение в Rebirth выглядит заметно более плоским, чем в предшественнике, Final Fantasy VII Remake, хотя обе игры работают на одном и том же модифицированном Unreal Engine 4. Ролики по-прежнему выглядят отлично, но мелкие объекты, листва и тонкие детали поверхностей во время обычного геймплея часто не отбрасывают никаких теней.
Вероятная причина кроется в гораздо большем открытом мире Rebirth. Для его поддержки разработчики заменили высокодетализированное предварительно просчитанное освещение Remake на более легкую систему с низким разрешением, лучше подходящую для большой карты. Это разумный компромисс ради производительности, но он обошелся игре потерей некоторых деталей теней.
Матос также объяснил, почему некоторые очевидные исправления здесь не работают: полное трассирование лучей слишком требовательно для открытого мира такого размера, простое увеличение разрешения карт теней плохо масштабируется на больших расстояниях, а добавление большего количества “каскадов” теней (слоев карт теней на разных расстояниях) резко снижает производительность, заставляя игру перерисовывать всю сцену несколько раз за кадр.

Его решение основано на тенях с трассировкой лучей в экранном пространстве (SSRT) — хорошо зарекомендовавшей себя технике, которая по умолчанию встроена в Unreal Engine 4, но которую Rebirth просто не использует. Вместо перерисовки сцены для каждого источника света, тени SSRT оцениваются с использованием только информации о глубине, уже присутствующей на экране, что по духу схоже с окклюзией окружения в экранном пространстве (screen-space ambient occlusion). Этот метод отлично подходит для мелких теней на близком расстоянии, таких как тени от волос, листвы и точек контакта между объектами.
Поскольку фактический шейдер Rebirth скомпилирован и не может быть отредактирован напрямую, Матосу пришлось провести обратную разработку с помощью RenderDoc — бесплатного инструмента для отладки графики, — прежде чем создавать свою улучшенную версию поверх него. Однако это не обошлось без затрат. Ранняя версия новых теней требовала дополнительных 3 миллисекунд на кадр, что неприемлемо при целевых 60 кадрах в секунду.
В результате нескольких раундов оптимизации (включая переход на более дружественный к GPU шаблон шума и сокращение количества выборок на луч тени) Матос снизил накладные расходы примерно до 0,44 мс при нативном разрешении 4K на RTX 3080, лишь удвоив стоимость оригинального шейдера освещения за существенное визуальное улучшение.

Улучшение легко заметить, если знать, что искать: тени от прядей волос на лицах персонажей, тени от травы и листвы на земле под ними, а также заметно более резкие тени в местах соприкосновения объектов с другими поверхностями. Эта техника не ограничивается солнечным светом; она работает и с локальными источниками света, такими как лампы и факелы, для нескольких из которых в Final Fantasy VII Rebirth в настоящее время полностью отключено отбрасывание теней.
К сожалению, пока нет точных сроков выпуска мода Shader Injector (который потенциально может модифицировать и другие шейдеры, включая постобработку и другие проходы освещения), но мы обязательно сообщим вам, как только он появится.
В других новостях о модах для Final Fantasy VII Remake/Rebirth: мод DX12 Async Compile может значительно улучшить проблемы с подтормаживанием в обеих играх.
Всегда имейте в виду, что редакции могут придерживаться предвзятых взглядов в освещении новостей.
Автор – Alessio Palumbo




