KF2: графические твики INI с объяснениями (KFEngine, KFSystemSettings)
Этот длинный гид сообщества времён беты построчно объясняет, что делают параметры Killing Floor 2 в KFEngine.ini и KFSystemSettings.ini, и даёт авторские значения для профилей "Ultra" и "Low". Он скорее объясняет, чем просто перечисляет твики, и часть советов устарела, так что проверяйте каждое изменение. Более новые и короткие материалы: минимальная графика через INI и оптимизация графики.
Перед правкой
Конфиги лежат в C:\Users\<имя>\Documents\My Games\KillingFloor2\KFGame\Config. Сделайте копии. Параметры ищите через Ctrl+F, копируя начало строки. Не упомянутые параметры либо не относятся к графике, либо опасны. После каждого файла проверяйте игру.
KFEngine.ini: главное (по умолчанию / Ultra / Low по данным автора)
| Параметр | Примечания |
|---|---|
| ProcBuildingLODColorTexelsPerWorldUnit | Тексели на единицу мира для цвета LOD зданий; по умолчанию 0.075, ultra 0.095, low 0.55 |
| ProcBuildingLODLightingTexelsPerWorldUnit | Освещение LOD зданий; по умолчанию 0.015, ultra 0.025, low 0.010 |
| ImageReflectionTextureSize | По умолчанию 1024, ultra 2048, low 64 |
| TerrainMaterialMaxTextureCount | Качество текстур рельефа; по умолчанию 16, ultra 32, low 8 |
| TerrainTessellationCheckDistance | Никогда не ставьте 0.0 (бесконечная проверка); автор использует 1.0 для всех |
| bStaticDecalsEnabled, bDynamicDecalsEnabled | True - качество, False - производительность; при чёрных квадратах верните динамические декали в True |
| bForceStaticTerrain | Может поднять FPS, возможны артефакты |
| MaxPixelShaderAdditiveComplexityCount | По умолчанию 900; значение 256 дало заметный прирост FPS |
| TimeBetweenPurgingPendingKillObjects | -1 отключает очистку памяти: меньше просадок FPS, но долгая пауза при достижении потолка памяти |
| bUseBackgroundLevelStreaming | Влияет только на загрузку; оставьте True |
| bDisablePhysXHardwareSupport | AMD: оставьте True. NVIDIA GTX 560 и выше или слабый CPU: попробуйте False |
| MaxFluidNumVerts | Нагружает GPU; по умолчанию 104857, ultra 54428, low 64 |
| FluidSimulationTimeLimit | По умолчанию 30; ultra 240, low 90 |
| MaxParticleVertexMemory | 262144 при 3 ГБ+ VRAM, 900 при меньшем |
| PhysXGpuHeapSize, PhysXMeshCacheSize | На NVIDIA можно повышать; на AMD не трогать |
| MaxObjectsNotConsideredByGC | По умолчанию 80000; значение 0 дало около 3 FPS |
| SizeOfPermanentObjectPool | Не трогать; автор случайно сломал игру |
| DisplayGamma | 2.2 - хорошее универсальное значение |
| MinDesiredFrameRate | Поставьте частоту обновления монитора |
| MaxLightComponents | Меньше - больше FPS; слишком мало - тёмные зоны |
| FLightPrimitiveInteractionInitialBlockSize | RAM в МБ, делённая на 8, при 4 ГБ и меньше |
| FModShadowPrimitiveInteractionInitialBlockSize | По умолчанию 2048; ultra 1024, low 512 |
| MemBudgetMb | 512 по умолчанию мало; 1024 на 32-битной Windows, намного больше на 64-битной |
| FreeCore | Оставляйте одно ядро свободным на настоящих 6- и 8-ядерных CPU |
О сглаживании: bSmoothFrameRate встречается в файле дважды, значения должны совпадать; с Min/MaxSmoothedFrameRate = 999 автор не увидел реальной разницы с False.
[TextureStreaming]
Poolsize: 512 для 4 ГБ RAM, 1024 для 8 ГБ, 2048 для 12 ГБ и более (мин. 150, макс. 2048); зависит от оперативной памяти, а не VRAM.UseTextureFileCache=Trueтолько при 1 ГБ+ видеопамяти; уменьшило "выскакивание" текстур.LoadMapTimeLimit: по умолчанию 2.2, ultra 2.0, low 20.0.MaxLightmapRadius,AllowStreamingLightmaps,UsePriorityStreaming(выключенный даёт больше FPS, но лаги),UseDynamicStreaming(False требует много RAM и VRAM).BoostPlayerTextures=0дало около 10 FPS ценой более тусклых моделей игроков.
KFSystemSettings.ini: главное
Рекомендации автора для Low: StaticDecals, DynamicDecals, DynamicShadows, MotionBlur, AmbientOcclusion, Bloom, световые лучи, Distortion, DropParticleDistortion, LensFlares, FogVolumes, AllowRadialBlur, AllowImageReflections и AllowImageReflectionShadowing - False; UseVsync - False. DynamicLights=True оставьте: на Unreal Engine 3 держится вся картинка, а при отключении всё становится чёрным. Один только ambient occlusion стоил автору около 15 FPS. Другие значения: SkeletalMeshLODBias 2-3 для производительности (-1 - лучшее качество), ParticleLODBias от -1 до 0, DetailMode от 1 до 4, MaxDrawDistanceScale 1.0 на ultra и 0.8 на low, MaxAnisotropy 4 на ultra и 0 на low, bAllowWholeSceneDominantShadows=False всегда, а для Low разрешения теней уменьшены (MaxShadowResolution 512, MinShadowResolution 32, ShadowTexelsPerPixel 1.1). Раздел APEX автор не трогал.
KFGame.ini
Последний раздел - блок для копирования целой секции KFGame.ini с пояснениями, как масштабировать её под слабое, среднее и мощное железо. В оригинале блок дан одним куском, поэтому подгоняйте его под своё железо, а не копируйте вслепую.
Вопросы и ответы
- Стоит ли отключать DynamicLights?
- Нет: автор предупреждает, что игра будет выглядеть ужасно, потому что движок держится на динамическом освещении.
- Какой Poolsize текстур ставить?
- 512 для 4 ГБ RAM, 1024 для 8 ГБ и 2048 для 12 ГБ и более.