﻿The Witcher 3: Wild Hunt - мод оптимизации графики для Steam Deck: что изменено
Версия игры: 5.0.16 (Steam, DirectX 12), witcher3.exe 5.0.16.41566, сборка Steam (Build ID) 26238013

КАК ПОДБИРАЛОСЬ
- Цель: больше кадров на Steam Deck без заметной потери картинки. Дорогое (геометрия, тени, трава, затенение)
  занижается внутри ступеней меню и ниже минимума меню, дешёвое (текстуры, анизотропия, резкость) остаётся.
- Замеры: неподвижная сцена, 20-25 секунд (mangoapp), контроль в начале и в конце каждой серии. Большинство скрытых
  настроек проверялось сравнением "было/стало" прямо в памяти запущенной игры, без меню и перезапуска.
- Узкие места: на рынке Новиграда - поток рендера и видеокарта при общем лимите 18 Вт; в лесу - только видеокарта.

1. bin\config\r4game\user_config_matrix\pc\graphics.xml (ступени пунктов меню)
- Качество детализации, все ступени: дальность отрисовки объектов (MeshRenderingDistanceScale) 1.5 -> 1.0.
  Новиград: +1,7-2,0 fps. 1.0 - минимум движка.
- Число персонажей на экране (SpawnedLimit): 75/100/130/150/160 -> 30/50/75/100/130.
  75 -> 50: +1,4 fps и +5 к 1% low. Главный рычаг для городов.
- Тени: "Высокие" - карта 2048 -> 1536 и фильтрация (CascadeShadowQuality) 1 -> 0. Цена "Высоких" к "Средним"
  1,9 мс -> 0,65 мс. "Запредельные" 3072 -> 2048, "Запредельные+" 4096 -> 3072.
- Плотность травы (GrassDensity): 1400/2400/3500/4750/6000 -> 1000/1400/2400/3500/4750.
- Дальность растительности "Низкая": дальность травы (GrassDistanceScale) 1.0 -> 0.8.
  Вместе с травой: лес +2,2 fps и +2 к 1% low.
- Повышение чёткости: снят запрет при FSR (тег disableIfFSR).

2. bin\config\platform\pc\rendering.ini (скрытые настройки, в меню их нет)
Часть настроек движка игра не читает из пользовательских настроек, но принимает из этого файла. Добавлено:
- [Rendering/Shadows] ScreenShadowsSampleDensity 80 -> 40, ScreenShadowsSampleDensityCharacters 120 -> 60:
  тени в экранном пространстве облегчены, а не выключены. +0,5 fps, разницы на экране не видно.
- [Physics] LODDistanceLimit 75 -> 30: полная физика объектов только в радиусе 30 м. +0,5-0,7 fps.
- [Rendering/DRS] DynamicResolutionPercentage -1 -> 0.25: при FSR "Высокое" и включённом динамическом разрешении
  внутреннее разрешение закреплено на 1004x624 (см. п. 3).

3. FSR и разрешение
- FSR в игре - версия 3.1.5. Штатное "Высокое" рендерит 853x533: в Новиграде кадр упирается в процессор и появляются
  рывки по 33-40 мс (1% low 26). Промежуточных режимов в игре нет.
- Динамическое разрешение умеет любую ступень от 936x584 до 1280x800, но в авторежиме на Deck дёргается на каждой
  смене разрешения. Мод закрепляет одну ступень.
- Новиград (fps / 1% low): натив 1280x800 + FXAA 47,9 / 44,9; 1036x648 48,8 / 44,1; 1004x624 49,8 / 40,5-43,8;
  968x604 50,9 / 37,9; 936x584 52,2 / 37,2. 1004x624 - самое быстрое без рывков.
- Резкость FSR включается пунктом "Повышение чёткости".

4. Настройки меню, которые входят в пресет
- GTAO "Среднее" вместо "Высокого": +1,0 fps.
- Отражения в экранном пространстве: выкл. В лесу они стоят 13 мс (45,8 -> 28,5 fps), настроек качества у них нет.
- mod.io: выкл. +0,5 fps, ровнее кадр.

5. Проверено и не вошло (эффекта нет или не стоит потерь картинки)
Пул текстур 1200 МБ, упрощение LOD персонажей и объектов, дальность упрощения теней персонажей, симуляция частиц
вне экрана, параллельный сбор и отсечение теней, пакеты отсечения Umbra, дальности скрытия мелочей, предзагрузка
объектов, лимит пула объектов, выборки зондов отражений, тени деревьев, дальность декалей, MipBias текстур,
настройки GTAO (радиус, шумоподавление), промежуточные ступени GTAO, число и дальность каскадов теней,
тесселяция рельефа, световые лучи, bloom.

6. Найдено в exe, но в мод не вошло
- Генерация кадров FSR под Proton заблокирована самой игрой: она проверяет, запущена ли под Wine. Если снять запрет,
  генерация включается, но волосы Геральта становятся белым пятном, а потоки FSR отнимают питание у видеокарты:
  кадров становится меньше, рывков больше.
- Ступени качества GTAO - таблица "направления x шаги" в exe (1x2, 2x2, 3x3, 9x3).
- Подмена делителя разрешения FSR в exe ломает картинку: размеры считаются в нескольких местах.

АВТОР
Мод сделан Not_Oleg.
