Train Sim World > Tutorial & Tools

Prestazioni TSW 4

(1/4) > >>

Alex656:
Ho sempre riscontrato un problema fastidioso con tutte le versioni di TSW ma sull'ultima era peggiorato ulteriormente: nonostante il frame rate fosse sempre alto avevo delle continue micropause ogni tot secondi che interrompevano continuamente lo scorrimento dello scenario, a volte si bloccava anche per qualche secondo nonostante il gioco fosse installato su un SSD prestante; con i treni AV il problema era ancor più fastidioso perché rovinava completamente la sensazione di andare veloci. Vista la situazione ho deciso di documentarmi un po' e credo di esserne finalmente venuto a capo. Inizio col dire che TSW 4 ha la possibilità di girare in directx 12, quindi chi è in possesso di una scheda video compatibile con queste librerie ha già un vantaggio; gli sviluppatori per il momento non hanno inserito un'opzione apposita ma i giochi sviluppati con UE possono essere avviati con un parametro: nel nostro caso è sufficiente inserire -DX12 tra le opzioni di avvio del gioco su steam. Le directx 12 permettono di attivare alcune opzioni che aiutano molto ad aumentare la fluidità ma, per poterle inserire, è necessario modificare con un editor di testo il file engine.ini presente nella cartella utente di windows: c:\Utenti\Nomeutente\Documents\my games\TrainSimWorld4\Saved\Config\WindowsNoEditor\Engine.ini

Purtroppo non esiste un'impostazione generale che possa andare bene per tutti, ovviamente ognuno deve impostare le opzioni in base alle caratteristiche del proprio pc, soprattutto riguardo il quantitativo di memoria della scheda video dedicata; nello specifico:

r.Streaming.PoolSize=7168
r.Streaming.MaxTempMemoryAllowed=5120
r.Shadow.WholeSceneShadowCacheMb=5120

Io ho una scheda video con 8 Gb di ram ed ho deciso di assegnarne 7 per la gestione del PoolSize e 5 per le altre 2 (basta moltiplicare il quantitativo di Gb per 1024, es. 7x1024=7168)

Ho lavorato parecchio sulle opzioni che ho trovato sui forum, in particolare su queste 2 discussioni:
- https://forums.dovetailgames.com/threads/please-optimize-tsw4-engine-ini.73687/
- https://www.trainsimcommunity.com/mods/c3-train-sim-world/c105-ini-tweaks/i3889-tsw4-to-d4-lighting-overhaul (ho scaricato il file "3 High V2.1.ini" a fondo pagina)

Come risultato finale ho ottenuto anche un miglioramento grafico, è spiegato tutto sul secondo link. Ora giocare a 200 Km/h ed oltre è una vera goduria, niente più interruzioni tranne qualche accettabilissimo istante per il caricamento di qualche oggetto. Come opzioni grafiche sul gioco ho impostato il preset alto (non ultra) con l'opzione del cielo su molto alto.
Indico di seguito la sezione [SystemSettings] che ho inserito sul file engine.ini se volete utilizzarlo vi ribadisco di impostare correttamente i 3 parametri che ho indicato in precedenza relativamente al quantitativo di ram video; ovviamente fatevi una copia prima di procedere:

[SystemSettings]
r.Streaming.FramesForFullUpdate=2
r.Streaming.Boost=2
r.Streaming.PoolSize=7168
r.Streaming.MaxTempMemoryAllowed=5120
r.Shadow.WholeSceneShadowCacheMb=5120
r.RenderTargetPoolMin=1200
r.GTSyncType=1
r.OneFrameThreadLag=1
g.TimeToBlockOnRenderFence=0
D3D12.MaximumFrameLatency=1
r.RHICmdBalanceParallelLists=1
r.CreateShadersOnLoad=1
fx.ForceCompileOnLoad=1
niagara.CreateShadersOnLoad=1
r.ForceAllCoresForShaderCompiling=1
D3D12.PSO.DiskCache=1
D3D12.PSO.DriverOptimizedDiskCache=1
r.ShaderPipelineCache.Enabled=1
r.ShaderPipelineCache.BatchTime=1
r.ShaderPipelineCache.PrecompileBatchTime=1
r.ShaderPipelineCache.BackgroundBatchTime=1
r.ShaderPipelineCache.BatchSize=1
r.ShaderPipelineCache.PrecompileBatchSize=1
r.ShaderPipelineCache.BackgroundBatchSize=1
gc.TimeBetweenPurgingPendingKillObjects=200
gc.NumRetriesBeforeForcingGC=1
gc.MinDesiredObjectsPerSubTask=50
s.ForceGCAfterLevelStreamedOut=0
s.ContinuouslyIncrementalGCWhileLevelsPendingPurge=0
s.AsyncLoadingTimeLimit=2
s.PriorityAsyncLoadingExtraTime=0
s.UnregisterComponentsTimeLimit=2
s.LevelStreamingActorsUpdateTimeLimit=2
s.PriorityLevelStreamingActorsUpdateExtraTime=0
s.LevelStreamingComponentsUnregistrationGranularity=10
s.LevelStreamingComponentsRegistrationGranularity=30
r.Streaming.NumStaticComponentsProcessedPerFrame=200
r.ViewDistanceScale=3
r.SkeletalMeshLODBias=-2
r.StaticMeshLODDistanceScale=0.5
foliage.LODDistanceScale=3
grass.densityScale=1
r.Shadow.MaxResolution=2048
r.Shadow.MaxCSMResolution=2048
r.Shadow.SpotLightTransitionScale=2048
r.Shadow.DistanceScale=2
r.Shadow.TransitionScale=2
r.Shadow.CSM.TransitionScale=2
r.Shadow.CSMShadowDistanceFadeoutMultiplier=0.25
r.Shadow.RadiusThreshold=0.03
r.Shadow.FilterMethod=0
r.Shadow.CSM.MaxCascades=5
r.DFDistanceScale=10
ts2.dbg.JourneyChapterLockOverride=1
ts2.save.CheckpointsEnabled=1
TimeOfDaySystem.AutoExposure.SpeedUp=10
TimeOfDaySystem.AutoExposure.SpeedDown=5
TimeOfDaySystem.VolumetricCloud.RayMarchedShadows=1
TimeOfDaySystem.AutoExposure.ExposureBias=-0.5
TimeOfDaySystem.SkyLightPollutionLuminance=1.0
TimeOfDaySystem.BloomIntensity=0.17
TimeOfDaySystem.SunIntensity=75000
TimeOfDaySystem.CloudShadowVolumetricResolutionScale=4
TimeOfDaySystem.Clouds.HighAltitude.CloudDensityMult=0.3
TimeOfDaySystem.VolumetricCloud.GroundContribution=1
TimeOfDaySystem.VolumetricCloud.LayerHeightScale=1.8
TimeOfDaySystem.StarIntensity=50
TimeofDaySystem.LegacyEmissiveAdjustments.EmissiveMultNonLamp=550
r.LightMaxDrawDistanceScale=50.0
r.MinScreenRadiusForLights=0.00
r.AllowLandscapeShadows=1
r.DistanceFieldShadowing=1
r.DFFullResolution=1
r.AmbientOcclusionLevels=3
r.VolumetricFog.DepthDistributionScale=32.000000
r.VolumetricFog.GridDivisor=120
r.VolumetricFog.GridPixelSize=8
r.VolumetricFog.GridSizeZ=96
r.VolumetricFog.HistoryMissSupersampleCount=1
r.VolumetricFog.HistoryWeight=0.900000
r.VolumetricFog.InjectShadowedLightsSeparately=1
r.VolumetricFog.InverseSquaredLightDistanceBiasScale=1.000000
r.VolumetricFog.Jitter=1
r.VolumetricFog.LightFunctionSupersampleScale=2.000000
r.VolumetricFog.TemporalReprojection=1
r.VolumetricFog.VoxelizationShowOnlyPassIndex=-1
r.VolumetricFog.VoxelizationSlicesPerGSPass=8
r.VolumetricLightmap.VisualizationMinScreenFraction=0.001000
r.VolumetricLightmap.VisualizationRadiusScale=0.010000

robix61:
Anche io ho tutte quelle micropause anche se con frame abbastanza alti.
Con la configurazione che vedi in firma, che configurazione mi consiglieresti, se vale la pena?

Claudio Mussa:
Ciao Ragazzi,

in effetti anche io avevo micro scatti abbastanza fastidiosi, ora si sono ridotti moltissimo sono quasi impercettibili ma ci sono ancora, anche la qualità generale è migliorata un pò. (ma era già ottima prima)

Questa sera sono anche riuscito a simulare una marcia parallela, impensabile con le versioni precedenti.

Grazie Alex, saluti Claudio

Alex656:

--- Citazione da: robix61 - 27  Settembre  2023 - 23:19:31 ---Anche io ho tutte quelle micropause anche se con frame abbastanza alti.
Con la configurazione che vedi in firma, che configurazione mi consiglieresti, se vale la pena?

--- Termina citazione ---

Nel tuo caso la scheda video fa un po' da collo di bottiglia comunque potresti provare a partire dalle mie impostazioni modificando il quantitativo di Vram come segue:

r.Streaming.PoolSize=3072
r.Streaming.MaxTempMemoryAllowed=2048
r.Shadow.WholeSceneShadowCacheMb=2048


Per provare ad adattare gli altri valori ti faccio il copia e incolla delle indicazioni fornite sul link precedente:

Basic adjustments for your particular systems in case you have a less powerful machine and see any impact on performance:
- Lock FPS in game to a value your system can handle in case you are not using G-sync
- D3D12.MaximumFrameLatency is optional and limits queued frames (default value is 3). DX11 users shall use RHI.MaximumFrameLatency instead for this purpose
- Change VRAM pool sizes for texture streaming as they are intended as "virtually unlimited" for my 24GB card (24576, 18432, 18432)
- Set original Streaming.Boost=2 (current one will increase textures quality by 1 additional Mip)
- Enable partial HLOD texture streaming (r.Streaming.HLODStrategy=1)
- Use viewdistance scale 2 or lower to lever the overall sceney render distance
- Reduce SkeletalMesh to -2 or -1 when displaying too many trains (current value increases the quality of trains to reduce LOD/texture transitions)
- Reduce StaticMeshLOD to values higher than 0.25 (current value increases the quality of buildings and static objects to reduce LOD/texture transitions)
- Reduce r.HLOD.DistanceOverrideScale to values closer to 1
- Reduce foliage viewdistance scale (current values increase the quality of vegetation to reduce LOD/texture and shadows transitions when too many trees are present)
- Reduce grass density scale (current value only increases density not quality and it´s not needed for optimiazations)
- Tune shadows according to your own preferences or add other graphical enhancements you havePlease be patient as we still need to test the old routes once game is officially released, so further changes may be needed later on.

Important notes
- In case you face out of memory crashes or high memory usages reduce the VRAM pool sizes to better match your GPU available memory or reduce garbage collector frequency below 900 seconds
- First time generation of shaders and DX12 caches may still result in frequent hitching. That´s the normal behaviour and will happen any time you play new content for the first time. Cache files can be manually deleted anytime you want (that will require a completely new generation process)
- Caches start to improve performance once they contain enough information to prevent excessive real-time compilations in game in favor or reusing the information directly stored by them. After that they will be still updated periodically but less frequently to incorporate new data. In case cache size is fully used newest data will replace oldest one to keep cache size unchanged.
- Add other settings only if you are sure about what they do, as they could invalidate some of my proposed tweaks


Nota importante: se si dovessero riscontrare dei crash con errori relativi alla sincronizzazione tra il render ed il game thread si dovrebbe rimuovere la riga seguente:
g.TimeToBlockOnRenderFence=0.


Per Claudio: i miglioramenti grafici dovrebbero riguardare nello specifico:
- distanza visualizzazione
- fluidità
- effetto eye-adaption in entrata uscita dalle gallerie
- illuminazione
- cielo sia per le nuvole (e la loro ombra) che per la visualizzazione notturna

Tutto spiegato meglio qua: https://www.trainsimcommunity.com/mods/c3-train-sim-world/c105-ini-tweaks/i3889-tsw4-to-d4-lighting-overhaul

Alex656:
Ovviamente non dimenticate il parametro di avvio -DX12  su steam se la scheda video è compatibile con le directx 12 (la 1060 lo è).

Navigazione

[0] Indice dei post

[#] Pagina successiva

Vai alla versione completa