Как настроить буфер глубины в ReShade 4.9.1 и зачем это нужно

Статья является переводом и адаптацией англоязычного оригинала от автора Daodan.

В этой статье я расскажу о том, что такое шейдер DisplayDepth.fx (глубина отображения), как правильно настроить буфер глубины в ReShade 4.9.1, и зачем это нужно вообще.

Итак, ReShade — это мощная система постобработки со множеством функций. Чтобы получить максимальную отдачу от ReShade, важно правильно настроить его для игры, в которой вы его используете. Одним из преимуществ использования ReShade по сравнению с другими программами постобработки (помимо очевидной постобработки в реальном времени) является использование буфера глубины вашей игры. С буфером глубины такие эффекты, как глубина резкости, становятся натуралистичнее, и, если вы захотите применить этот эффект с помощью другого программного обеспечения, это не только займёт намного больше времени, но и, вероятно, будет выглядеть не так хорошо, как когда вы делаете это с помощью ReShade.

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

Для любого скринмейкера, как и для обычного фотографа, важно знать, что главную роль в создании снимка часто играет не сам объект, который вы хотите запечатлеть, а композиция, ракурс и визуальное окружение, попросту говоря, фон. Именно для создания красивого фона: размытия мягкого или направленного, сияния (боке), затемнения или осветления, обесцвечивания и, наконец, полной замены в первую очередь используются шейдеры, работающие с буфером глубины вашей игры. Например, Cinematic Depth of Field, или "Cinematic DOF" / "Кинематографическая глубина резкости" - это шейдер глубины резкости, который создан для работы с аспектами объектива, для фокусировки и управления размытием. Или CanvasFog, который, в частности, позволяет полностью заменить фон и создаёт невероятное пространство для вашего творчества.

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

Далее все пошаговые настройки проиллюстрированы скриншотами из игры Assassin's Creed Odyssey версии 1.5.4, установленной на PC через платформу Steam.

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

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

Контрольное изображение.
Контрольное изображение.

Внимание! Это контрольное изображение. Именно так должен выглядеть буфер глубины в вашей игре, если все значения настроены правильно.

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

Справа карта глубины: близкие объекты чёрные, удаленные объекты белые. Если вы хотите увидеть только карту глубины, выберите её в строке, как указано ниже.

Теперь нажмите "Edit global preprocessor definitions"/ "Изменить глобальные определения препроцессора" – это самая верхняя строка в нижнем окне.

"Edit global preprocessor definitions"/ "Изменить глобальные определения препроцессора».
"Edit global preprocessor definitions"/ "Изменить глобальные определения препроцессора».

RESHADE_DEPTH_LINEARIZATION_FAR_PLANE - это значение, определяющее самую дальнюю плоскость (необходимость изменять его огромная редкость, в большинстве игр стоит оставить стандартные 1000 единиц).

RESHADE_DEPTH_INPUT_IS_*: это значения для перевёрнутого, обратного и логарифмического буфера глубины.

Если вы видите на мониторе нечто подобное:

Вы уже догадались. Ваш перевёрнутый буфер глубины настроен неправильно. Вам необходимо изменить цифровое значение в RESHADE_DEPTH_INPUT_IS_UPSIDE_DOWN с 1 на 0 (или наоборот).

Далее аналогично:

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

Неверное значение для логарифмического буфера глубины.
Неверное значение для логарифмического буфера глубины.

Здесь нормали поверхности имеют полосы (внимательно сравните скалы слева на контрольном изображении и на втором из двух изображений представленных выше), поэтому настройка логарифмического буфера глубины RESHADE_DEPTH_INPUT _IS_LOGARITHMIC неверна, несмотря на то, что на первый взгляд, изображение выглядит нормально.

После изменения любого цифрового значения ещё раз нажмите строку "Edit global preprocessor definitions"/ " Изменить глобальные определения препроцессора ". Результат вы увидите сразу. Это просто и наглядно.

Итак, в основном то, что вы делаете, это:

  1. Измените значения для *IS_UPSIDE_DOWN, *_IS_REVERSED и *_IS_LOGARITHMIC, пока выходные данные не будут выглядеть как на контрольном изображении.
  2. Нажмите "Edit global preprocessor definitions"/" Изменить глобальные определения препроцессора ".
  3. Перезагрузите игру, если это необходимо.

Теперь, если какой-либо конкретный шейдер продолжит работать неадекватно, вы можете быть уверены, что проблема именно в нём.

Предупреждение:

Если доступ к буферу глубины по какой-либо причине отсутствует, карта глубины будет либо черной, либо белой, а на карте нормалей будет отображаться только сплошной цвет.

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

  1. В некоторых играх определённые настройки могут препятствовать доступу к буферу глубины (особенно это касается онлайн-игр).
  2. Попробуйте изменить тип сглаживания (в частности, MSAA, см. вкладку DX11 в играх d3d11).
  3. Попробуйте изменить настройки, которые отвечают за разрешение, при котором отображается игра (например: "Remember me" нуждается во включённом суперсэмплинге, а "Mass Effect: Andromeda" требует отключения масштабирования разрешения).
  4. Не забудьте взглянуть на список совместимости.

И ещё одно! ReShade отключает доступ к буферу глубины в онлайн-играх!

2323
6 комментариев

@Скриншоты тут что-то интересное

3
Ответить

Спаси бочки. Подписалась )

Ответить

В первом ведьмаке есть возможность так настроить глубину резкости? У меня только чёрный экран в шейдере :(

Ответить

TW3?

Ответить