Overview
Описание настроек в конфигурационных файлах которые влияют на качество графики и fps
Главная
Я испробовал множество настроек читая всяческую документацию к ue4 и также использовал гугл, описанные ниже настройки одни из тех которые работают и их изменения можно реально увидеть на глаз и они ничего не портят и не ломают визуально, а некоторые из них улучшают производительность
Не забудь добавить в избранное или заглянуть сюда еще раз, гайд будет дополняться по мере возможностей и нахождения нужных настроек
Параметры запуска
Правой кнопкой мышки на игре в стиме, свойства и далее установить параметры запуска, параметры разделяются пробелом
- -norhithread Отключение многопоточных команд рендеринга, дает более плавное время кадра и картинки в целом, на фпс не влияет, но положительно влияет на стабильность фпс
- -NOTEXTURESTREAMING выключает стриминг текстур, при отключении игра будет дольше загружаться, но все текстуры будут хранится в памяти, а не подгружаться с диска постепенно, понадобится минимум 8гб памяти на видеокарте
- -NoVerifyGC отключение динамического распределения памяти, в выключенном состоянии может улучшить производительность и избавить от лагов(потребуется больше 8гб оперативной памяти)
- -nothreadtimeout у движка Unreal есть логика для проверки жив ли поток рендеринга и с помощью этой опции проверка зависших потоков по таймауту будет отключена и игра не будет вылетать в случае такого зависания
Описание настроек Engine.ini
Все предлагаемые настройки перед применением на жескую в Engine.ini можно попробовать в консоле игры для этого требуется нажать CTRL+SHIFT+L и после на тильду ~ откроется консоль, посмотреть уже имеющееся значение нужно два раза нажать тильду и ввести например r.ViewDistanceScale имена команд можно дополнять по Tab.
Пример как задать свое значение в консоле r.ViewDistanceScale 3
Файл Engine.ini находится по пути %userprofile%AppDataLocalFactoryGameSavedConfigWindowsNoEditor
Все настройки добавляются в раздел [SystemSettings] если не указано иначе
После установки настроек обязательно выставить в свойствах файла Engine.ini “только для чтения”
- Общие настройки:
- r.ViewDistanceScale дальность прорисовки от низкое(0.1) до высокое (10) влияние на фпс не большое и зависит от чем больше значение тем влияние сильнее
r.ViewDistanceQuality качество дальности прорисовки от 0 до 4 - r.SceneColorFormat качество цветового охвата в основном за счет прозрачности, от 0 до 5, по умолчанию 4, оптимально 3 среднее-низкое влияние на фпс
- r.CreateShadersOnLoad при 1 подготавливает шейдеры перед загрузкой, загрузка будет идти дольше но будет меньше лагов во время игры
- r.FinishCurrentFrame при 0 отключает ожидания завершения рендеринга и увеличивается фпс
- r.OneFrameThreadLag при (1) увеличивает импутлаг, но увеличивает фпс, при (0) без импутлага, возможно падение фпс(импутлаг – задержка ввода с клавиатуры и мыши)
- r.RenderTargetPoolMin от 100 до 5000 и выше, пул рендеринга – не освобождаемая видеопамять нужная для обработки если её не будет хватать возможны лаги, по умолчанию 400, но если посмотрите лог (C:Users%userprofile%AppDataLocalFactoryGameSavedLogsFactoryGame.log) и там есть ошибки вида:
LogRenderTargetPool: Warning: r.RenderTargetPoolMin exceeded 675/400 MB (ok in editor, bad on fixed memory platform)
то увеличьте до нужных значение, например в этом случае 1000 будет более чем достаточно, но не забывайте вы расходуете таким образом видеопамять требуемую для текстур - r.bForceCPUAccessToGPUSkinVerts при (1) увеличивает нагрузку на процессор за счет снижения нагрузки на видеокарту, если процессор свободен можно включить, увеличит фпс
- r.Streaming.MipBias качество текстур при стриминге от низкое(2) до высокое(0) почти не влияет на фпс или не влияет вообще
- r.MaterialQualityLevel качество материалов от низкое(0) до высокое(2) почти не влияет на фпс или не влияет вообще
- r.ForceLOD устанавливает максимальную дальности прорисовки от без LOD(-1) до всё будет картонным состоящим из LOD(1) сильно влияет на фпс
- r.Fog туман отключить(0), включить(1)
- r.StaticMeshLODDistanceScale уровень расстояния на котором будут использоваться меши от низкое(1) до высокое(0.25) почти не влияет на фпс или не влияет вообще
- r.MipMapLODBias задает резкость текстур от более размытые(15) до более резкие(-15) почти не влияет на фпс или не влияет вообще
- r.DetailMode текущий режим детализации от низкое(0) до высокое(2) среднее влияние на фпс
- r.Color.Mid цветокоррекция по умолчанию 0.5 по изменениям похоже на гамма-коррекцию или контрастность на фпс не влияет вообще
- r.ScreenPercentage увеличение или уменьшение разрешение рендеринга(суперсемплинг), 100 означает 100% выбранного разрешения экрана, в крайних случаях для увеличения фпс можно попробовать уменьшить значение
Настройка сглаживания:
- r.DefaultFeature.AntiAliasing режим сглаживания 3-MSAA, 2-TAA, 1-FXAA
- r.TemporalAASharpness при 1 включает возможность настройки резкости картинки
- r.Tonemapper.Sharpen сила резкости всей картинки, придает хорошую четкость при 1 или выше
- r.TemporalAACurrentFrameWeight при 0 будет идеальное сглаживание чем меньше значение тем меньше лесенки на краях объектов и качественнее сглаживание, чем выше значение тем больше шума от сглаживания
- r.TemporalAAFilterSize размер фильтра для ТАА сглаживания, параметр подбирается экспериментально
- r.TemporalAASamples количество семплов для TAA сглаживания, не сильно влияет на фпс больше 16 не имеет смысла
Настройка растительности, зданий и травы:
Качество и дальность проработки зданий завязаны на параметр foliage - foliage.LODDistanceScale дальность прорисовки растительности и зданий, чем выше значение тем меньше будут внезапно появляется качественные деревья, здания при приближении к ним от низкое(0) до высокое (10) влияение на фпс не большое и зависит от чем больше значение тем влияние сильнее
- foliage.DensityScale плотность растительности от без растительности на деревьях?(0) до высокое(10) до 2 влияние на фпс не большое далее фпс просаживает сильнее
- foliage.MinimumScreenSize расстояние отсечение травы, деревьев и частей зданий от высокое 0.00000001 до полного отсечения всего 1, примеры как это работает [docs.unrealengine.com]
- foliage.ForceLOD устанавливает максимальную дальности прорисовки растительности от без LOD(-1) до всё будет картонным состоящим из LOD(1) сильно влияет на фпс
- grass.MaxUpdateFrequency частота того как быстро трава будет появляться при приближении от низкое(1) до высокое(60) почти не влияет на фпс или не влияет вообще
- grass.DensityScale плотность травы от без травы(0) до высокое(10) до 2 влияние на фпс не большое далее фпс просаживает сильнее
Настройка теней:
- r.ShadowQuality качество теней от 0 без теней до 5, оптимальное значение 3
- r.Shadow.DistanceScale дальность прорисовки теней от низкое(0.1) до высокое (10) влияние на фпс не большое и зависит от чем больше значение тем влияние сильнее
- r.Shadow.PreShadowResolutionFactor расстояние на котором будет уменьшатся качество теней от 0.1 до 5
- r.Shadow.MaxResolution максимальное разрешение теней, оптимально 1024
Снятие ограничений на хранение текстур хранящихся в памяти или можете поставить свои значения:
- r.TextureStreaming включение(1) отключение(0) стриминга текстур при отключении игра будет дольше загружаться, но все текстуры будут хранится в памяти, а не подгружаться с диска постепенно, понадобится минимум 8гб памяти на видеокарте и 16гб оперативной памяти
- r.Streaming.UseFixedPoolSize использовать статический пул выделенной памяти(1), динамически выделяемая память(0)
- r.Streaming.FullyLoadUsedTextures (1)включает передачу всех используемых текстур до их максимально разрешения и хранит их в памяти до тех пор, пока приложение открыто. Это следует использовать в качестве альтернативы полному отключению r.TextureStreaming
- r.Streaming.LimitPoolSizeToVRAM если этот параметр включен(1), размер пула текстур будет ограничен объемом памяти видеокарты.
- PoolSizeVRAMPercentage указывается в процентах от памяти видеокарты, бесконечно(0) ИЛИ
- PoolSize указывается в мегабайтах, бесконечно(0)
[TextureStreaming] NeverStreamOutTextures=1 ;Не выгружать текстуры из памяти
Сетевые настройки
Увеличение пропускной способности и увеличение тикрейта, увеличение тикрейта повлечет за собой увеличение нагрузки на CPU
После установки настроек обязательно выставить в свойствах файла Engine.ini “только для чтения”
Engine.ini
Game.ini
Scalability.ini
Отключение логов
Отключение логов, на диск не будут записыватся логи, может улучшится незначительно фпс
После установки настроек обязательно выставить в свойствах файла Engine.ini “только для чтения”
Другие настройки
Отключение дебага плагина ИИ, не знаю зачем оно включено по умолчанию
Включить мультипоточность для звукового движка Wwise который используется в игре, если со звуком будут проблемы отключайте обратно
Количество автосохранения по умолчанию 3
Экспериментальные опции могут повысить фпс:
Мой пример настроек
Приведенные настройки обеспечивают лучшее качество прорисовки, графики и сглаживания без падения фпс, выше есть описания настроек для того чтобы вы могли настроить под себя.
Скриншоты слева ультра настройки доступные в игре, справа ультра плюс мои настройки, для того чтобы увидеть разницу откройте во весь экран, при моих настройках видно что увеличена дальность прорисовки, количество травы и качество сглаживания при этом FPS остается такой же
Все действия производятся в файле Engine.ini находится по пути %userprofile%AppDataLocalFactoryGameSavedConfigWindowsNoEditor
После установки настроек обязательно выставить в свойствах файла Engine.ini “только для чтения”
Вот так выглядит мой Engine.ini:
Дополнительные замечания
У кого не включается консоль по тильде ~, надо прописать кастомную клавишу в конфиг:
1) Идём по этому пути “%LOCALAPPDATA%FactoryGameSavedConfigWindowsNoEditor” через Win + R.
2) Открываем файл Input.ini и добавляем следующее:
После этого в игре нажимаем Ctrl + Shift + L и потом F6.
P.S. Зачастую консоль не включается из-за того что при запуске игры в раскладке клавиатуры стоит русский язык