MECCHA CHAMELEON

MECCHA CHAMELEON

Not enough ratings
Повышение FPS для слабых устройств (в 2-3 раза)
By JesterGio
Данное руководство может помочь тем, кто страдает от низкого фпс, а также от статтеров во время игры.
   
Award
Favorite
Favorited
Unfavorite
C чего всё началось
Тут я буду краток. У меня слабый ноут и для него игра, кажется, не была оптимизирована должным образом. При большом количестве игроков или просто спустя длительное время игра стала выдавать фрейм дропы, которые вызывали другие клиент-сервер баги, мешающие играть.
Что делать?
Ввиду скудных настроек графики, вам придётся залезать под капот игры, к настройкам движка. находятся они по пути:

%LocalAppData%\Chameleon\Saved\Config\Windows

Там необходимо создать файл
Engine.ini
. Он позволяет напрямую редактировать настройки игры и включать/отключать некоторые параметры. Это нам и нужно. Далее в файл Engine.ini вы вставляете параметры:

[SystemSettings] r.ScreenPercentage=35 r.DefaultFeature.AntiAliasing=1 r.AntiAliasingMethod=1 r.Tonemapper.Sharpen=3 t.MaxFPS=0 r.FrameTimeSmoothingFactor=0 bSmoothFrameRate=0 t.MaxForegroundFPS=0 t.MaxBackgroundFPS=20 r.TextureStreaming=1 r.Streaming.FullyLoadUsedTextures=1 r.VT.FeedbackFactor=0 r.Streaming.MaxNumTexturesToStreamPerFrame=4 r.streaming.HeavyBoost=1 r.Streaming.Boost=1 r.MipMapLODBias=0 r.VirtualTexture.Anisotropy=0 r.MaxAnisotropy=2 r.streaming.MipBias=0 r.streaming.AmortizeCPUToGPUCopy=0 r.streaming.MaxMipsInOutsidePool=0 r.Streaming.DropMips=1 r.Streaming.PoolSizeNotUsedTimeout=2.0 r.Streaming.DefragDynamicBounds=1 r.VSync=0 r.bUseVSync=0 r.GTSyncType=0 r.FinishCurrentFrame=0 r.FrameRateFlexibility=5 r.OneFrameThreadLag=1 r.RenderThreadMeasuredSeconds=1 r.D3D12.StablePowerState=0 r.ShaderPipelineCache.Enabled=1 r.ShaderPipelineCache.ReportFrameTime=0 r.ShaderPipelineCache.BackgroundCompilationSoH=1 r.ShaderPipelineCache.PreOptimizeWithBackgroundCompilation=1 r.XGEController.Enabled=0 r.Shaders.Optimize=1 r.Shaders.FastMath=1 r.D3D12.ForceEarlyImplicitRootsigCreation=1 r.MeshDrawCommands.ParallelPassSetup=1 r.bHighPriorityLoadingCriticalSections=1 r.GpuTimestampRenderThreadFix=1 r.CreateShadersOnLoad=1 r.bForceThrottlingVariable=0 WinGDI.AllowDirectManipulation=1 r.AsyncCompute=1 r.EnableAsyncComputeOnEveryScene=1 r.BatchSize=0 s.AsyncLoadingThreadEnabled=1 s.AsyncLoadingTimeLimit=0.5 s.LevelStreamingActorsUpdateTimeLimit=0.5 s.UnregisterComponentsTimeLimit=0.5 s.LevelStreamingComponentsRegistrationGranularity=100 r.Streaming.NumStaticComponentsProcessedPerFrame=20 r.MaxComponentsWithPendingAllosPerFrame=10 r.HZBForOcclusion=1 r.AllowOcclusionQueries=1 r.VisualizeOcclusion=0 r.MinScreenRadiusForLights=0.01 r.MinScreenRadiusForDepthPrepass=0.01 r.MinScreenRadiusForShadows=0.02 r.EarlyZPass=2 r.EarlyZPassMovable=1 r.StaticMeshLODBias=0 r.SkeletalMeshLODBias=0 r.ForceLOD=0 r.DitherLODTransition=0 r.ViewDistanceScale=0.4 r.SkeletalMeshRefPoseAsLOD=1 r.LandscapeLODBias=1 r.LandscapeLODDistributionScale=1.0 p.ClothPhysics=0 r.SkinPhysics=0 p.Chaos.Solver.TickPhysicsInAsyncTick=1 r.DynamicGlobalIlluminationMethod=0 r.Lumen.DiffuseIndirect.Allow=0 r.Lumen.Reflections.Allow=0 r.ReflectionMethod=0 r.RayTracing.ForceAllRayTracingEffects=0 r.DiffuseIndirect.Allow=1 r.LumenScene.Radiosity=0 r.LumenScene.DirectLighting=0 r.Lumen.HardwareRayTracing=0 r.MotionBlurQuality=0 r.MotionBlur.Max=0 r.MotionBlur.Amount=0 r.MotionBlur.Scale=0 r.BlurGBuffer=0 r.BloomQuality=0 r.DepthOfFieldQuality=0 r.SSR.Quality=0 r.SceneColorFringeQuality=0 r.EyeAdaptationQuality=1 r.ShadowQuality=0 r.Shadow.MaxResolution=64 r.Shadow.DistanceScale=0.2 r.Shadow.CSM.MaxCascades=0 r.DistanceFieldShadowing=0 r.ContactShadows=0 r.AllowLandscapeShadows=0 r.bForceFullDecompressEvenInEditor=1 r.HZBOcclusion=1 fixtimedelta=1 [SystemSettingsEditor] bInitializePhysicsOnCreation=1 [/script/engine.streamingsettings] s.AsyncLoadingThreadEnabled=True s.UseBackgroundLevelStreaming=True s.AllowAsyncLoadingFromMemory=True [/script/engine.renderersettings] r.PSOPrecache.enabled=1 r.PSOPrecache.AllBackgroundDynamicPSOs=1 r.ShaderPipelineCache.Enabled=1 r.ShaderPipelineCache.ReportPrecompiledShaders=1 r.ShaderCompiler.JobPriorityUserIfActive=1 [Core.System] gc.MaxObjectsNotConsideredByGC=16384 gc.SizeOfPermanentObjectPool=0 gc.FlushStreamingOnGC=1 gc.NumObjectsPerNotice=10000 gc.LowMemoryIfCleanUpEachFrame=0 gc.MultithreadedDestruction=1 gc.CreateObjectsInConstructReferences=1 [/script/engine.engine] gc.TimeBetweenPurgingPendingKillObjects=60.0 bSmoothFrameRate=False MinDesiredFrameRate=0.000000

После завершения манипуляций с файлом, необходимо открыть его свойства и поставить "только чтение", дабы игра не обнулила настройки.
За что отвечают параметры?
  • r.ScreenPercentage=50 — Меняет внутреннее разрешение
  • r.DefaultFeature.AntiAliasing=1 — Сглаживание
  • r.AntiAliasingMethod=1 — FXAA
  • r.Tonemapper.Sharpen=1.5 — Резкость
  • r.MipMapLODBias=0 — чем ближе, тем чётче текстуры
  • r.MaxAnisotropy=8 — Сохраняет четкость поверхностей под углом к камере.
  • r.TextureStreaming=0 — Запрещает динамический стриминг, заставляя движок загружать текстуры в оригинальном качестве.
  • r.Streaming.PoolSize=-1 — Открывает доступ ко всей доступной видеопамяти для текстурного буфера.
  • r.Streaming.LimitPoolSizeToVRAM=0 — Снимает системные ограничения пула по объему памяти.
  • r.Streaming.UseFixedPoolSize=0 — Запрещает блокировать размер выделенного под текстуры пула.
  • r.Streaming.MaxTempMemoryAllowed=512 — Расширяет объем кэша для быстрой подгрузки ассетов.
  • r.Streaming.FullyLoadUsedTextures=0 — Ограничивает загрузку границами видимой сцены во избежание вылетов.
  • r.VirtualTextures=0 — Блокирует технологию виртуальных текстур, устраняя долгую прогрузку поверхностей.
  • r.VirtualTexture.Anisotropy=0 — Отключает фильтрацию для виртуальных текстур.
  • r.VT.FeedbackFactor=0 — Прекращает сбор данных для системы виртуальных текстур.
  • r.VSync=0 — Отключает вертикальную синхронизацию.
  • r.bUseVSync=0 — Дублирует запрет вертикальной синхронизации.
  • t.MaxFPS=0 — Отключения ограничения ФПС
  • r.GTSyncType=1 — Устраняет принудительную фиксацию на 60 FPS при работе технологий G-Sync или FreeSync.
  • r.FinishCurrentFrame=0 — Позволяет процессору подготавливать кадры без ожидания их отрисовки видеокартой.
  • r.FrameRateFlexibility=5 — Стабилизирует шаг времени движка при резких изменениях кадров.
  • r.RenderThreadMeasuredSeconds=1 — Форсирует точный замер времени работы потока отрисовки.
  • r.D3D12.StablePowerState=0 — Позволяет видеокарте игнорировать режимы энергосбережения ради максимальных частот.
  • r.ShaderPipelineCache.Enabled=1 — Запускает кэширование шейдеров.
  • r.ShaderPipelineCache.ReportFrameTime=0 — Прекращает замеры времени кадра фоновым кэшером, убирая микро-фризы.
  • r.ShaderPipelineCache.BackgroundCompilationSoH=1 — Переводит компиляцию шейдеров в фоновые потоки процессора.
  • r.ShaderPipelineCache.PreOptimizeWithBackgroundCompilation=1 — Форсирует фоновое перестроение кэша эффектов во время игрового процесса.
  • r.XGEController.Enabled=0 — Отключает запросы к неиспользуемым сетевым инструментам компиляции.
  • r.Shaders.Optimize=1 — Оптимизирует исполняемый код шейдеров.
  • r.Shaders.FastMath=1 — Разрешает аппаратные математические упрощения в шейдерах для ускорения работы.
  • r.D3D12.ForceEarlyImplicitRootsigCreation=1 — Ускоряет сборку корневых сигнатур DirectX 12, предотвращая затыки.
  • r.DynamicGlobalIlluminationMethod=0 — Вырезает ресурсоемкое глобальное освещение Lumen.
  • r.Lumen.DiffuseIndirect.Allow=0 — Блокирует расчет рассеянного света Lumen.
  • r.Lumen.Reflections.Allow=0 — Полностью отключает отражения Lumen.
  • r.ReflectionMethod=0 — Убирает стандартные динамические отражения на объектах.
  • r.RayTracing.ForceAllRayTracingEffects=0 — Намертво выключает трассировку лучей.
  • r.DiffuseIndirect.Allow=1 — Сохраняет базовый статический свет во избежание полной темноты на локациях.
  • r.LumenScene.Radiosity=0 — Блокирует расчет карт излучения для сцены Lumen.
  • r.LumenScene.DirectLighting=0 — Отключает прямое освещение Lumen.
  • r.Lumen.HardwareRayTracing=0 — Запрещает аппаратный просчет лучей для систем Lumen.
  • r.MotionBlurQuality=0 — Выключает размытие изображения при движении камеры.
  • r.MotionBlur.Max=0 — Обнуляет максимальный предел размытия.
  • r.MotionBlur.Amount=0 — Снижает интенсивность смазывания кадра до нуля.
  • r.MotionBlur.Scale=0 — Убирает масштаб эффекта размытия.
  • r.BlurGBuffer=0 — Блокирует размытие буфера геометрии.
  • r.BloomQuality=0 — Отключает эффект свечения ярких объектов.
  • r.DepthOfFieldQuality=0 — Выключает размытие заднего плана, делая горизонт четким.
  • r.SSR.Quality=0 — Отключает отражения в экранном пространстве.
  • r.SceneColorFringeQuality=0 — Убирает искажения цвета по краям экрана.
  • r.EyeAdaptationQuality=1 — Сохраняет автоэкспозицию для автоматической настройки яркости в темноте.
  • r.ShadowQuality=0 — Полностью убирает динамические тени.
  • r.Shadow.MaxResolution=64 — Снижает разрешение статических теней до минимального предела.
  • r.Shadow.DistanceScale=0.3 — Заставляет тени исчезать в непосредственной близости от игрока для разгрузки процессора.
  • r.Shadow.CSM.MaxCascades=0 — Отключает каскады динамических теней от солнца.
  • r.DistanceFieldShadowing=0 — Выключает тени на больших расстояниях.
  • r.ContactShadows=0 — Отключает мелкие контактные тени.
  • r.AllowLandscapeShadows=0 — Убирает просчет теней от рельефа ландшафта.
  • r.HZBForOcclusion=0 — Отключает тяжелый буфер проверки видимости объектов, улучшая производительность на людных локациях.
  • r.AllowOcclusionQueries=1 — Разрешает движку не отрисовывать объекты, скрытые стенами.
  • r.SkeletalMeshLODBias=1 — Оптимизирует детализацию моделей персонажей без визуального разрушения геометрии.
  • r.StaticMeshLODBias=1 — Снижает детализацию статических объектов окружения.
  • r.MeshDrawCommands.ParallelPassSetup=1 — Распараллеливает подготовку команд отрисовки по ядрам процессора.
  • r.bHighPriorityLoadingCriticalSections=1 — Присваивает потокам игры высший приоритет, запрещая службам Windows прерывать их работу.
  • r.GpuTimestampRenderThreadFix=1 — Исправляет задержки при обмене временными метками между GPU и процессором.
  • r.CreateShadersOnLoad=1 — Переносит компиляцию базовых шейдеров на экраны загрузки уровней.
  • r.bForceThrottlingVariable=0 — Запрещает движку искусственно снижать частоту кадров при фиксации критических нагрузок.
  • WinGDI.AllowDirectManipulation=1 — Оптимизирует вывод игрового окна на рабочий стол Windows, снижая задержку мыши.
  • r.AsyncCompute=1 — Разрешает видеокарте обрабатывать вычислительные эффекты параллельно с графикой.
  • r.EnableAsyncComputeOnEveryScene=0 — Отключает асинхронные вычисления на простых сценах.
  • r.OneFrameThreadLag=1 — Удерживает стабильный темп кадров с задержкой потока в один кадр.
  • r.BatchSize=0 — Снимает лимиты пакетирования данных для ускорения работы конвейера.
  • s.AsyncLoadingThreadEnabled=1 — Активирует выделенный поток процессора для чтения данных с диска.
  • s.AsyncLoadingTimeLimit=20.0 — Лимитирует время фоновой подгрузки ассетов до 20 мс за такт, исключая заикания.
  • s.LevelStreamingActorsUpdateTimeLimit=20.0 — Ограничивает время обновления игровых объектов в памяти за один проход.
  • s.UnregisterComponentsTimeLimit=20.0 — Ставит жесткий временной лимит на выгрузку старых компонентов.
  • bInitializePhysicsOnCreation=1 — Просчитывает физику объектов сразу в момент их появления, ликвидируя лаги при контакте.
  • gc.MaxObjectsNotConsideredByGC=16384 — Выводит критические постоянные объекты из зоны частых проверок очистки памяти.
  • gc.SizeOfPermanentObjectPool=0 — Сбрасывает размер пула постоянных объектов.
  • gc.FlushStreamingOnGC=0 — Запрещает сбрасывать кэш стриминга во время плановой очистки памяти, убирая цикличные фриз
Дополнительно: в случае крашей
Если после установки конфига у вас крашит игра - используйте следующие параметры запуска:

-lowmem - игра дополнительно подстраивается под малый обьём ОЗУ
-dx11 / -d3d11 - игра запускается на DirectX 11. Может также существенно увеличить кадры в секунду за счёт использования более простого api. Также, если у вас видеокарта от AMD - может помочь использование команды -vulkan

Также, пользователям Intel UHD Graphics могут помогать следующие настройки в GameUserSettings.ini (находится в том же месте, где и Engine.ini):
[ScalabilityGroups] sg.ViewDistanceQuality=0 sg.AntiAliasingQuality=0 sg.ShadowQuality=0 sg.GlobalIlluminationQuality=2 sg.ReflectionQuality=1 sg.PostProcessQuality=0 sg.TextureQuality=0 sg.EffectsQuality=0 sg.FoliageQuality=3 sg.ShadingQuality=0 sg.LandscapeQuality=0

,либо

[ScalabilityGroups] sg.ViewDistanceQuality=0 sg.AntiAliasingQuality=0 sg.ShadowQuality=0 sg.GlobalIlluminationQuality=0 sg.ReflectionQuality=0 sg.PostProcessQuality=0 sg.TextureQuality=0 sg.EffectsQuality=0 sg.FoliageQuality=0 sg.ShadingQuality=0 sg.LandscapeQuality=0

Краткое руководство:

1. Откройте GameUserSettings.ini
2. Выделите всю строку [ScalabilityGroups] ровно до следующей строки с квадратными скобками. следующую строку с квадратными скобками не выделяйте.
3. замените всю [ScalabilityGroups] на одну из приведённых выше.

* Также, данный способ может помочь тем, чья видеокарта не Intel UHD Graphics, но чья игра также крашится при использовании 3D пипетки.
Послесловие
Если у вас возникнут какие-то проблемы с фпс, игрой или просто будут какие-то доп. команды для повышения ФПС — можете спокойно писать всё это в комментарии. Желаю всем приятной игры с высокими фепесами.
6 Comments
Aug 9 @ 2:13am 
почитайте пж моё руководство про новый режим игры
уже нашел другой способ:steamhappy:
JesterGio  [author]
Jul 1 @ 12:04pm 
как именно крашится?
скинь лог
не работает, крашится при запуске
JesterGio  [author]
Jun 29 @ 8:34am 
значит ты, скорее всего, не поставил read-only на Engine.ini
а что, если ничего не изменилось?