Satisfactory Guide

Большой гайд по оптимизации for Satisfactory

Большой гайд по оптимизации

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

[/script/engine.player] ConfiguredInternetSpeed=104857600 ConfiguredLanSpeed=104857600 [/script/onlinesubsystemutils.ipnetdriver] MaxClientRate=104857600 MaxInternetClientRate=104857600 NetServerMaxTickRate=120 LanServerMaxTickRate=120 MaxNetTickRate=400 InitialConnectTimeout=300.0 ConnectionTimeout=300.0 [/script/engine.gamenetworkmanager] TotalNetBandwidth=104857600 MaxDynamicBandwidth=104857600 MinDynamicBandwidth=104857600 [/script/socketsubsystemepic.epicnetdriver] MaxClientRate=104857600 MaxInternetClientRate=104857600 [/script/engine.engine] NetClientTicksPerSecond=120

Game.ini

[/script/engine.gamenetworkmanager] TotalNetBandwidth=104857600 MaxDynamicBandwidth=104857600 MinDynamicBandwidth=10485760

Scalability.ini

[NetworkQuality@3] ConfiguredInternetSpeed=104857600 ConfiguredLanSpeed=104857600 TotalNetBandwidth=104857600 MaxDynamicBandwidth=104857600 MinDynamicBandwidth=10485760 MaxClientRate=104857600 MaxInternetClientRate=104857600

Отключение логов

Отключение логов, на диск не будут записыватся логи, может улучшится незначительно фпс
После установки настроек обязательно выставить в свойствах файла Engine.ini “только для чтения”

[Core.System] +Suppress=Scriptwarning +Suppress=Error +Suppress=Scriptlog +Suppress=Warning [Core.Log] LogPluginManager=all off LogOnlineIdentity=all off LogOnlineSession=all off LogMemory=all off LogPakFile=all off LogTemp=all off LogLinker=all off LogOnline=all off LogOnlineGame=all off LogAnalytics=all off LogConfig=all off LogInteractiveProcess=all off LogInput=all off LogOnlineEntitlement=all off LogOnlineEvents=all off LogOnlineFriend=all off LogOnlinePresence=all off LogOnlineTitleFile=all off LogOnlineUser=all off Global=off

Другие настройки

Отключение дебага плагина ИИ, не знаю зачем оно включено по умолчанию

[/script/aimodule.aisystem] bEnableDebuggerPlugin=False

Включить мультипоточность для звукового движка Wwise который используется в игре, если со звуком будут проблемы отключайте обратно

[/script/akaudio.aksettings] bEnableMultiCoreRendering=True

Количество автосохранения по умолчанию 3

[/script/factorygame.fgsavesession] mNumRotatingAutosaves=5

Экспериментальные опции могут повысить фпс:

AllowAsyncRenderThreadUpdates=1 AllowAsyncRenderThreadUpdatesDuringGamethreadUpdates=1 r.SupportDepthOnlyIndexBuffers=1 r.SupportReversedIndexBuffers=1 r.DBuffer=0 r.GPUCrashDebugging=0 r.CompileShadersForDevelopment=0 FX.AllowAsyncTick=1 FX.BatchAsync=1 FX.BatchAsyncBatchSize=9999999 FX.MaxCPUParticlesPerEmitter=50 FX.MaxGPUParticlesSpawnedPerFrame=2048 AudioThread.BatchAsyncBatchSize=9999999 AudioThread.UseBackgroundThreadPool=1 AudioThread.EnableBatchProcessing=1

Мой пример настроек

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

Все действия производятся в файле Engine.ini находится по пути %userprofile%AppDataLocalFactoryGameSavedConfigWindowsNoEditor
После установки настроек обязательно выставить в свойствах файла Engine.ini “только для чтения”
Вот так выглядит мой Engine.ini:

[Core.System] Paths=../../../Engine/Content Paths=%GAMEDIR%Content Paths=../../../Engine/Plugins/Wwise/Content Paths=../../../Engine/Plugins/Compositing/Composure/Content Paths=../../../Engine/Plugins/Compositing/LensDistortion/Content Paths=../../../Engine/Plugins/Editor/BlueprintMaterialTextureNodes/Content Paths=../../../Engine/Plugins/Compositing/OpenColorIO/Content Paths=../../../Engine/Plugins/Experimental/PythonScriptPlugin/Content Paths=../../../Engine/Plugins/Tests/EditorTests/Content Paths=../../../Engine/Plugins/Tests/RuntimeTests/Content Paths=../../../FactoryGame/Plugins/CSSEditorToolsExtension/Content Paths=../../../Engine/Plugins/2D/Paper2D/Content Paths=../../../Engine/Plugins/Developer/AnimationSharing/Content Paths=../../../Engine/Plugins/Editor/CryptoKeys/Content Paths=../../../Engine/Plugins/Enterprise/DatasmithContent/Content Paths=../../../Engine/Plugins/Media/MediaCompositing/Content +Suppress=Scriptwarning +Suppress=Error +Suppress=Scriptlog +Suppress=Warning [Core.Log] LogPluginManager=all off LogOnlineIdentity=all off LogOnlineSession=all off LogMemory=all off LogPakFile=all off LogTemp=all off LogLinker=all off LogOnline=all off LogOnlineGame=all off LogAnalytics=all off LogConfig=all off LogInteractiveProcess=all off LogInput=all off LogOnlineEntitlement=all off LogOnlineEvents=all off LogOnlineFriend=all off LogOnlinePresence=all off LogOnlineTitleFile=all off LogOnlineUser=all off Global=off [/script/engine.player] ConfiguredInternetSpeed=104857600 ConfiguredLanSpeed=104857600 [/script/onlinesubsystemutils.ipnetdriver] MaxClientRate=104857600 MaxInternetClientRate=104857600 NetServerMaxTickRate=120 LanServerMaxTickRate=120 MaxNetTickRate=400 InitialConnectTimeout=300.0 ConnectionTimeout=300.0 [/script/engine.gamenetworkmanager] TotalNetBandwidth=104857600 MaxDynamicBandwidth=104857600 MinDynamicBandwidth=104857600 [/script/socketsubsystemepic.epicnetdriver] MaxClientRate=104857600 MaxInternetClientRate=104857600 [/script/engine.engine] NetClientTicksPerSecond=120 [SystemSettings] AllowAsyncRenderThreadUpdates=1 AllowAsyncRenderThreadUpdatesDuringGamethreadUpdates=1 r.bForceCPUAccessToGPUSkinVerts=1 r.SupportDepthOnlyIndexBuffers=1 r.SupportReversedIndexBuffers=1 r.DBuffer=0 r.GPUCrashDebugging=0 r.CompileShadersForDevelopment=0 FX.AllowAsyncTick=1 FX.BatchAsync=1 FX.BatchAsyncBatchSize=9999999 FX.MaxCPUParticlesPerEmitter=50 FX.MaxGPUParticlesSpawnedPerFrame=2048 AudioThread.BatchAsyncBatchSize=9999999 AudioThread.UseBackgroundThreadPool=1 AudioThread.EnableBatchProcessing=1 r.ShadowQuality=3 r.ViewDistanceScale=1.5 r.ViewDistanceQuality=4 foliage.MinimumScreenSize=0.009 foliage.LODDistanceScale=1.4 foliage.DensityScale=1.5 grass.DensityScale=2 grass.MaxUpdateFrequency=40 r.MaterialQualityLevel=2 r.DefaultFeature.AntiAliasing=2 r.FinishCurrentFrame=0 r.CreateShadersOnLoad=1 r.Streaming.UseFixedPoolSize=0 r.Streaming.PoolSize=0 r.Streaming.FullyLoadUsedTextures=1 r.Streaming.LimitPoolSizeToVRAM=0 r.Streaming.AmortizeCPUToGPUCopy=1 r.Streaming.MaxNumTexturesToStreamPerFrame=1 r.Streaming.Boost=0.3 r.Streaming.FramesForFullUpdate=30 r.Streaming.MaxTempMemoryAllowed=10 r.MaxAnisotropy=16 r.TemporalAACurrentFrameWeight=0.02 r.TemporalAAFilterSize=0.2 r.TemporalAASamples=16 r.Shadow.MaxResolution=1024 r.Shadow.DistanceScale=2 r.Shadow.PreShadowResolutionFactor=0.5 r.Upscale.Quality=6 r.PostProcessAAQuality=6 r.MipMapLODBias=0 r.Color.Mid=0.47 r.TemporalAA.Upsampling=1 r.TemporalAASharpness=1 r.Tonemapper.Sharpen=1.6 r.TonemapperFilm=1 r.Tonemapper.Quality=5 r.TemporalAACatmullRom=1 r.Shaders.Optimize=1 r.Shaders.FastMath=1 r.OneFrameThreadLag=1 r.HZBOcclusion=0 r.RenderTargetPoolMin=1000 r.AllowOcclusionQueries=1 r.SceneColorFormat=3 r.D3D11.Depth24Bit=0 r.DefaultFeature.MotionBlur=0 r.MotionBlurQuality=0

Дополнительные замечания

У кого не включается консоль по тильде ~, надо прописать кастомную клавишу в конфиг:
1) Идём по этому пути “%LOCALAPPDATA%FactoryGameSavedConfigWindowsNoEditor” через Win + R.
2) Открываем файл Input.ini и добавляем следующее:

[/script/engine.inputsettings] ConsoleKeys=F6

После этого в игре нажимаем Ctrl + Shift + L и потом F6.
P.S. Зачастую консоль не включается из-за того что при запуске игры в раскладке клавиатуры стоит русский язык

Заключение

SteamSolo.com