Optimisations
La 1ère des optimisations, c'est de faire tourner le jeu sur un SSD.
Je veux même pas savoir comment ça tourne sur un HDD
Ensuite, ont clairement été identifiées des options qui plombent lourdement les performances.
La plus impactante est celle qui concerne les shaders, qu'il est conseillé de mettre en élevé. Viennent ensuite les ombres, qu'il faut baisser en élevé, ou mieux, en medium avec le mod Better Shadows.
Passer le jeu en priorité haute dans le gestionnaire de tâches fait également gagner quelques fps chez certains.
Et bien sûr, jouer avec la 980Ti de Gautoz fait gagner 40 fps par rapport aux benchs en UWQHD
Fullscreen ou Bordeless ?
Pas mal de joueurs rapportent un gain de fps notable en passant en fullscreen, notamment avec le fichier user.cfg et le batching.
Beaucoup semblent éviter les freezes en fullscreen également.
Cela semble donc être la solution à privilégier. Attention, au moindre alt-tab, le jeu repassera de lui-même en borderless, donc soyez vigilant.
Néanmoins, pour d'autres, et c'est mon cas, être en borderless ou en fullscreen ne change absolument rien dans tous les cas de figure.
Ainsi je reste en borderless
Comme toujours, le mieux est de tester par vous-même.
Créer un fichier user.cfg
Dans Steam\steamapps\common\KingdomComeDeliverance, créez un fichier texte, et renommez-le "user.cfg", en supprimant l'extension .txt.
Il vous permettra d'ajouter des lignes de commandes ayant pour but d'agir sur le rendu et les performances du jeu.
Ensuite, faites un clic droit sur le nom du jeu dans votre bibliothèque steam, allez dans properties, puis dans l'onglet general cliquez sur "set launch options" et collez la commande suivante : +exec user.cfg
validez et refermez.
Tweaks graphiques
- Désactiver la synchro verticale et ajouter un cap aux fps
r_vsync = 0
sys_maxfps = 60
0 désactive, 1 active, vous pouvez mettre la limite de fps que vous voulez.
La désactivation de la v-sync est fortement recommandée pour un gain de performances.
Mettre un cap aux fps empêche le tearing en mode fullscreen.
Inutile depuis la version 1.3/1.3.1 du jeu.
- Activer le brouillard volumétrique
e_VolumetricFog = 1
Cet effet a été implémenté par les développeurs mais n'a pas été optimisé en terme de rendu. Ils considèrent le jeu plus réussi sans, dans l'état actuel de son implémentation, mais les avis des joueurs divergent.
Par temps de pluie, d'orage, aux aurores ou à l'aube, l'effet transfigure le rendu rendu visuel. En journée ou la nuit, le rendu est moins convaincant.
Vous pouvez activer ou désactiver l'effet en passant par la console de commande in-game, en appuyant sur ² et en entrant e_VolumetricFog = 0 ou 1.
Le coût en performances est négligeable.
- Activer l'anti-aliasing temporel
r_antialiasingmode = 3
Plus efficace que l'AA de base, pour un coût en performances négligeable. C'est un AA temporel, comme le TXAA (le meilleur AA du monde, comme chacun sait), ce qui le rend particulièrement efficace en mouvement, au prix d'une perte de piqué, ce qui pour certains est un défaut.
Défaut discutable et qui peut-être contrebalancé par un sharpen dédié en cas d'activation du TAA.
Inutile depuis la version 1.3/1.3.1 du jeu.
- Régler les valeurs des algorithmes de sharpening
r_sharpening = 0.1
r_antialiasingtaasharpening = 0
La 1ère ligne concerne le sharpen de base du jeu, qui est assez appuyé, bien trop à mon goût.
Le 2nde n'est active que si l'AA temporel est lui aussi activé.
Je vous conseille de ne pas trop pousser les valeurs, surtout pour le taasharpening, où 0.2 est vraiment le max conseillé.
Les désactiver tous les deux est un choix qui se justifie, pour des raisons de performances, déjà, car cela permet de grappiller quelques fps, mais aussi de rendu visuel.
Avec le brouillard volumétrique activé et le sharpen désactivé, la perte de piqué est peut-être un peu trop marquée, auquel cas un usage mesuré des algorithmes de sharpening pourra faire une belle différence.
- Désactiver le Motion Blur
r_MotionBlur = 0
Gain notable en terme de perf', et beaucoup de gens trouvent ça dégueulasse.
Inutile depuis la version 1.2/1.2.5 du jeu.
- Empêcher le flickering, réactiver les ombres dynamiques manquantes et booster les performances relatives à la gestions des ombres
r_SilhouettePOM = 0
On discute pas, tout le monde colle cette ligne dans le fichier user.cfg.
Ca empêche le fickering qui apparait quand on touche aux lod des shadows et à leur résolution, ça réactive les ombres dynamiques des objets et des PNJ qui sautent quand on touche les lods et la résolution, et ça optimise considérablement les performances quand on augmente la résolution des ombres.
- Augmenter la résolution des ombres
e_ShadowsMaxTexRes=4096
De base, la résolution est de 1024, vous pouvez la baisser à 512, pour améliorer les performances, ou l'augmenter, à 2048 ou 4096.
Le coût en performances avec une résolution de 2048 est négligeable en ville, mais notable en forêt. Avec 4096, évidemment, c'est encore plus prononcé.
Le mod Better Shadows propose une version avec des ombres de meilleure résolution, mais je vous conseille d'installer la version classique et d'ajuster vous-même.
- Activer les aberrations chromatiques
r_ChromaticAberration=4
Y'a pas de demi-mesure avec les CA, soit on est fan, soit on déteste
Perso j'adore
4 est une valeur médiane, à vous d'ajuster en fonction de votre goût.
r_HDRGrainAmount=0.3
Comme les CA, on aime ou on déteste.
Encore une fois, moi j'adore. je suis dans la team grain & CA et je suis un farouche opposant de la team sharpen
On y va mollo quand même, pas plus de 0.5 sinon ça vire crado.
- Accentuer l'occlusion ambiante
r_ssdo=1
r_ssdoAmountAmbient=1.42
r_ssdoAmountDirect=2
r_ssdoAmountReflection=2
r_ssdoHalfRes=2
r_ssdoRadius=0.3
r_ssdoRadiusMin=2
r_ssdoRadiusMax=0.1
e_svoTI_SSAOAmount=1.4
Je vous conseille de désactiver le brouillard volumétrique si vous choisissez d'agir sur le rendu de l'AO.
Il est également conseillé de bricoler les valeurs, via la console de commande in-game pour ajuster à votre goût.
- Ajuster le contraste et la luminosité
r_Contrast = 0.6
r_Brightness = 0.45
Attention, les changement nés de ces deux lignes ne seront pas capturés par des screenshots
Ce ne sera visible que par vous, sur votre écran.
Perso je trouve que ça baise tout et que ça bouche les noirs, mais chacun fait comme il veut
- Activer le réticule de visée pour les arcs
wh_pl_showfirecursor = 1
Perso je trouve que ça nique un peu le délire, mais bon.
g_showhud = 0
bind 9 g_ShowHud 0
bind 0 g_ShowHud 1
Vous pouvez binder autre chose que 9 et 0, évidemment
Tweaks LoD
- Améliorer les distances d'affichage
Source http://steamcommunity.com/sharedfi [...] 1304694967
e_ViewDistRatio=200
visual range of objects, ultra = 125, all sliders to the right=150
(much higher values looks odd because of detail differences in distance)
- little performance hit with this value
e_ViewDistRatioVegetation=200
visual range of some trees and bushes, ultra = 65, all sliders to the right=150
- little performance hit with this value
e_LodFaceAreaTargetSize=0.0008
the most powerful LOD parameter, ultra = 0.002 (smaller=better),
(better LOD of objects, buildings, vegetation, also better shadows in the distance)
- moderate to high performance hit with this value but high effect
e_UberlodDistanceRatio=4.0
LOD of some trees and bushes, ultra=2.5
(need to reload the level to take effect if increased while ingame)
- little performance hit with this value
e_MergedMeshesViewDistRatio=125
visual range of grass, ultra=80, all sliders to the right=100
- little performance hit with this value
e_vegetationUseTerrainColorDistance=150
range color of grass matches the color of terrain, low- ultra=80
(improves the look of distance grass a lot, see comparison shot)
- no performance hit
e_TerrainDetailMaterialsViewDistZ=300
better ground texture in distance, ultra=100
- almost no performance hit with this value
Pour activer cette ligne, la placer dans le fichier user.cfg ne suffit pas.
Rendez-vous dans Steam \steamapps \common \KingdomComeDeliverance \Engine, et faites un backup du fichier engine.bak, comme pour le mod Better Shadows.
Ouvrez ensuite l'archive avec winrar ou 7 zip, naviguez vers Config puis CVarGroups.
Ouvrez le fichier "sys_spec_Texture.cfg", et rendez-vous tout en bas, dans la section 7, qui correspond au set Ultra, et remplacez "e_TerrainDetailMaterialsViewDistZ=100" par "e_TerrainDetailMaterialsViewDistZ=300".
Sauvegardez dans Notepad++, confirmez le message de Winrar/7 Zip, et refermez.
Bien entendu, vous devez mettre les textures en Ultra dans les settings du jeu pour que l'effet soit actif.
Tweaks CPU & GPU
- Optimiser la répartition de l'hyperthreading pour les CPU quad cores et +
r_MultiThreaded=1
sys_job_system_enable=1
ai_NavigationSystemMT=1
sys_job_system_max_worker=XX -- Indiquez le nombre total de threads de votre CPU, 8 au minimum
sys_main_CPU=1
sys_physics_CPU=2
sys_streaming_CPU=3
e_ParticlesThread=4
ca_thread0Affinity=5
ca_thread1Affinity=6
r_WaterUpdateThread=7
e_StatObjMergeUseThread=8
sys_TaskThread0_CPU=9
sys_TaskThread1_CPU=10
sys_TaskThread2_CPU=11
sys_TaskThread3_CPU=12
Ces lignes se rajoutent pour les CPU à 12 threads. Si votre CPU gère plus que 12 threads, rajoutez des lignes et suivez le pattern
Le gain de performance va de minime à considérable.
Testez !
Inutile depuis la versions 1.3.1 du jeu.
- Choisir la méthode de batching des draw calls
r_BatchType = 1
0 donne la charge au CPU, 1 la donne au GPU, 2 est le mode auto.
Pour ceux qui ont un CPU qui en prend plein le museau, ou ceux qui sont chez AMD, passer le batching sur le GPU peut offrir un gain de performances considérable en fullscreen.
Pour les autres, il n'y a pas forcément d'utilité, chez moi je n'obtiens ni bénéfice ni effet indésirable.
A tester sur votre config', donc.
- Optimiser la répartition de l'utilisation des cores CPU
sys_main_CPU = 0
sys_physics_CPU = 2
sys_streaming_CPU = 4
Pour les CPU permettant l'hyperthreading, l'incrémentation se fait de 2 en 2. Pour les processeurs sans HT, on incrémente de 1 en 1.
La dernière valeur doit épouser le nombre de cores physiques de votre CPU.
Pour un quad core sans HT, on mettra donc 2,3,4, pour un hexa HT ce sera 2,4,6, pour un 18 cores HT on mettra 14,16,18, et donc, comme pour l'exemple, un quad HT devra contenir 0,2,4.
Après des tests plus poussés, cette méthode n'offre aucun bénéfice sur mon système.
Chez certains le tweak permet un net gain de performances, possiblement lorsque l'on tourne avec un Windows antérieur au 10, comme le 7 dans le cas répertorié.
Chez d'autres, le tweak peut s'avérer néfaste pour les performances.
Edit du 7/03/2018, pour ceux tournant sur W10 et utilisant un CPU gérant l'HT et disposant d'au moins 4 coeurs physique, ce tweak est inutile.
Testez plutôt le tweak d'optimisation de l'hyperthreading signalé un peu plus haut sur cette page.
Inutile depuis la versions 1.3.1 du jeu.
- Activer le SLI ou le crossfire
r_MultiGPU = 1
Tweaks SSD & Mémoire
- Optimiser le streaming de textures et éradiquer le popping
sys_PakStreamCache=1
sys_preload=1
sys_budget_sysmem=XX -- valeur totale de RAM de votre machine, en mo
sys_budget_videomem=XX -- valeur totale de la VRAM de votre GPU, en mo
r_TexturesStreamPoolSize=XX -- valeur totale de la VRAM de votre GPU, en mo
r_TexturesStreamingMaxRequestedMB=XX -- vitesse de lecture maximale de votre SSD, en MB
r_TexturesStreamingResidencyTime=120
r_texturesstreamingDeferred=1
r_TexturesStreamingResidencyEnabled=1
r_TexturesStreamingMipBias=-3 -- radius d'affichage des textures, de -4 à +4, -4 étant la plus gourmand, +4 le moins gourmand
r_TexturesStreamingResidencyThrottle=0.8
e_PreloadMaterials=1
Indispensable.
Inutile depuis la version 1.3/1.3.1 du jeu.
Exemples de performances
A titre indicatif, voici la configuration avec laquelle je joue.
8700k
1080Ti
32 Gigots de RAM
SSD NMVe
UWQHD 3440x1440
Voici mon fichier user.cfg
Citation :
#Graphics Tweaks
e_VolumetricFog=1
r_sharpening=0.3
r_antialiasingtaasharpening=0
e_ShadowsMaxTexRes=2048
r_ChromaticAberration=5
r_HDRGrainAmount=0.3
r_ssdo=1
r_ssdoAmountAmbient=1.42
r_ssdoAmountDirect=2.4
r_ssdoAmountReflection=2
r_ssdoHalfRes=0 r_ssdoRadius=0.3
r_ssdoRadiusMin=2
r_ssdoRadiusMax=0.1
e_svoTI_SSAOAmount=1.4
bind 9 g_ShowHud 0 bind 0 g_ShowHud 1 #LoD Tweaks
e_ViewDistRatio=200
e_ViewDistRatioVegetation=200
e_LodFaceAreaTargetSize=0.0008
e_UberlodDistanceRatio=4.0
e_MergedMeshesViewDistRatio=125
e_vegetationUseTerrainColorDistance=150
r_TexturesStreamingMipBias=-4
|
Sur la version 1.3.1, en sélectionnant le preset Ultra High, le SMAA 2TX, avec la V-Sync et le motion blur désactivés, en combinaison avec le fichier user.cfg juste au-dessus, on obtient un genre de preset Super High qui donne au jeu un rendu visuel absolument exceptionnel.
En terme de performances, en UWQHD, soit une résolution de 3440x1440 au format 2:39.1, le jeu tourne entre 42 et 60 fps en fonction des lieux et des évènements, avec une moyenne autour de 49/51 fps.
A vous de faire votre propre configuration en vous basant sur ces informations.