Бинды и консоль

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, bDynamicDecalsEnabledTrue - качество, False - производительность; при чёрных квадратах верните динамические декали в True
bForceStaticTerrainМожет поднять FPS, возможны артефакты
MaxPixelShaderAdditiveComplexityCountПо умолчанию 900; значение 256 дало заметный прирост FPS
TimeBetweenPurgingPendingKillObjects-1 отключает очистку памяти: меньше просадок FPS, но долгая пауза при достижении потолка памяти
bUseBackgroundLevelStreamingВлияет только на загрузку; оставьте True
bDisablePhysXHardwareSupportAMD: оставьте True. NVIDIA GTX 560 и выше или слабый CPU: попробуйте False
MaxFluidNumVertsНагружает GPU; по умолчанию 104857, ultra 54428, low 64
FluidSimulationTimeLimitПо умолчанию 30; ultra 240, low 90
MaxParticleVertexMemory262144 при 3 ГБ+ VRAM, 900 при меньшем
PhysXGpuHeapSize, PhysXMeshCacheSizeНа NVIDIA можно повышать; на AMD не трогать
MaxObjectsNotConsideredByGCПо умолчанию 80000; значение 0 дало около 3 FPS
SizeOfPermanentObjectPoolНе трогать; автор случайно сломал игру
DisplayGamma2.2 - хорошее универсальное значение
MinDesiredFrameRateПоставьте частоту обновления монитора
MaxLightComponentsМеньше - больше FPS; слишком мало - тёмные зоны
FLightPrimitiveInteractionInitialBlockSizeRAM в МБ, делённая на 8, при 4 ГБ и меньше
FModShadowPrimitiveInteractionInitialBlockSizeПо умолчанию 2048; ultra 1024, low 512
MemBudgetMb512 по умолчанию мало; 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 ГБ и более.