Published using Google Docs
WuWa Tweaks with Image Comparison
Updated automatically every 5 minutes

Last update: 5 October 2024 | Reddit post | Discord Server

PC Specs: i5-10500H, 16GB RAM, RTX 3060, 1080p

Images are a bit small to fit mobile screens and low resolution (1366x768) screens. You can right click and open the image in a new tab for the full resolution.

Far Object Rendering

; Default - 90FPS | Option 1 - 102FPS | Option 2 - 118FPS (Jinzhou view from Grand Library entrance)

; Tests done at night time, should be more FPS during the day
; Option 1 not really noticeable but Option 2 you'll notice stuff is missing easily

; FPS gain is not as big if you have a low-end GPU

; Option 1
wp.Runtime.OverrideMultipleRuntimeGridLoadingRangeValues=150&300&450&600&1250&5000&500&600&1000&500&

650&800&1000&1500&120&150&200&350&80&160&200&200&1500&5000&100&160&200&1000&1500

; Option 2
wp.Runtime.OverrideMultipleRuntimeGridLoadingRangeValues=100&200&300&400&1000&4000&250&400&500&250&

650&800&850&1000&90&120&150&250&60&120&150&150&1000&4000&75&120&200&900&1250

By setting the loading range values boosts the FPS quite a bit for almost no change by not rendering far away objects you don’t see.

Improving Texture Details

; Forcing Anisotropic Filtering x16 for AMD GPUs doesn't work, x8 works fine
; Use the commands below instead if x8 is still not enough

; Forcing AFx16 works fine on NVIDIA GPUs
r.MipMapLODBias=-2
r.LandscapeLODBias=-2

The game's anisotropic filtering doesn't work properly even when r.MaxAnisotropy is set to 16. Setting Anisotropic Filtering in the GPU Control Panel greatly improves the texture details and doesn't look as blurry/low resolution anymore.

Anisotropic Filtering Image Comparison

View Distance

; Default view distance is 1, higher increases distance but costs more FPS

; Don’t see a difference when using a value higher than 3
r.ViewDistanceScale=2
foliage.LODDistanceScale=2

The game's default view distance is pretty low and by increasing it a bit does help to make the area not look as empty.

View Distance Image Comparison

Reflections

; SSR Quality 0 to 4 - off to very high
; Max Roughness 0.0 to 1.0 - higher value more reflections, costs more FPS
r.SSR.Quality=3
r.SSR.MaxRoughness=1.0

Game’s default max roughness is pretty low, increasing it to the max value shows more objects in the reflections and makes it look nicer in my opinion.

Reflections Image Comparison

Shadows

; 0 - Uniform PCF (Default)
; 1 - PCSS (Not recommended, noisy shadows on edges)
; 2 - Kuro Soft Shadow (Old Default - before patch 1.2)
r.Shadow.FilterMethod=0

; Set shadow resolution, higher costs more FPS
r.Shadow.MaxCSMResolution=2048

r.Shadow.MinResolution=2048

r.Shadow.PerObjectShadowMapResolution=2048

r.Shadow.PerObjectResolutionMax=2048

r.Shadow.PerObjectResolutionMin=2048

The default values used by the game for certain shadows is low by default which is the reason why it doesn't look great, even bumping it to 1024 makes it look better already. For the shadow filter the PCF Shadows looks better and fits the game's style better in my opinion.

SHADOW FILTER METHOD IMAGE COMPARISON

Shadows Resolution Image Comparison

Brightness/Color

; r.Color.Max - Default 1, lower values darken the highlights
; r.Color.Mid - Default 0.5, lower values darken the mid tones
; r.KuroTonemapping - 1 Kuro Tonemap Off, 3 Kuro Tonemap On (looks hazy)
r.Color.Max=1.1
r.Color.Mid=0.55
r.KuroTonemapping=1

The default tonemap used by the game looks pretty washed out and has this bright haze lookin filter applied. Turning it off makes the bloom slightly more tolerable and looks a bit better in my opinion. I've gone with slightly higher values for the r.Color commands to fix the colors to match the original.

FULL IMAGE COMPARISON: OUTDOORS | INDOORS

Tonemap Image Comparison

Fog

; 0 Disable Fog, 1 Enable Fog | Not included in configs (except low end)
r.Fog=0

The game has the "Volumetric Fog" options in the game settings but turning off doesn't seem to change anything. Changing it through the Engine.ini file is the only way to remove the fog and this one is personal preference, I think it doesn't look great due to the far away objects with it turned off.

Fog Image Comparison

Volumetric Lighting

Honestly the Volumetric Lighting in game doesn't look good and just flashbangs you, wish it was implemented better. Personally I prefer it turned off in settings so I can see stuff better.

Volumetric Lighting Image Comparison

Anti-Aliasing

; r.TemporalAA.Algorithm - 0 Gen 4 TAA, 1 Gen 5 TAA (more blurry, less shimmering)
r.TemporalAA.Algorithm=0

; r.TemporalAACurrentFrameWeight - Higher value more aliasing, less blurry when moving
r.TemporalAACurrentFrameWeight=0.35

; Only works with Gen 5 TAA, fix the movement blurring
; Demanding option only use if you have a lot of FPS
r.TemporalAA.HistoryScreenPercentage=200

; SMAA Quality - 1 Low, 2 Medium, 3 High, 4 Epic
r.Kuro.SMAALevelOverride=4

; FSR Sharpness settings
; 0 = sharpest, 0.2 (default), higher = less sharp
r.FidelityFX.FSR.RCAS.Sharpness=0.2

The default TAA used by the game is pretty blurry and with the values used above there's better clarity in motion and any ghosting issues should be reduced.

Improving Textures/VRAM Usage and Reducing Stutters

; Load required textures at max resolution within VRAM limit

; Allow meshes to use same pool as textures
r.Streaming.FullyLoadUsedTextures=1

r.Streaming.HLODStrategy=2
r.Streaming.LimitPoolSizeToVRAM=1
r.Streaming.PoolSizeForMeshes=-1

Using the settings above should reduce the amount of stutters/FPS drops during exploration/combat but increases the load times by a bit at the start of the game as it loads more textures into the VRAM. Remove all r.Streaming commands if you have 4GB VRAM or less.

VRAM Usage Comparison

Log File

; Disable most of the logging
[Core.Log]
global=none

The game logs a bunch of stuff by default and the file size can be quite big if you play for a while I guess. Not sure if the game even deletes old log files (default to purge is 5 days) and it creates a new log file when launching the game.

THE 7MB LOG FILE IS WITHIN 5 MINUTES OF PLAYING AND GETS BIGGER, DISABLING MOST LOGGING KEEPS IT AT A SMALLER SIZE.

Log File Comparison

Particles

; Group and schedule particles that can run async earlier in frame

FX.BatchAsync=1
FX.EarlyScheduleAsync=1

Tweaks to try and reduce the amount of FPS drops in combat and make it more stable.

Others

; r.DetailMode changes object details, lights and particle effects
; 0 = low, 1 = medium, 2 = high
r.DetailMode=2

; r.MaterialQualityLevel changes object details
; 0 = low, 1 = high, 2 = medium (Yes the numbers are weird)
r.MaterialQualityLevel=1

; Higher value reduces the amount of objects shown
r.ScreenSizeCullRatioFactor=3

; Higher anim rate value makes animation update less often for better performance

; Interpolate to make animation look normal for anim rate 2 or higher

a.URO.ForceAnimRate=2

a.URO.ForceInterpolation=1

; Improve culling for better performance

r.AllowUseAnyLODAsOcclusionData=1

r.AlsoUseSphereForFrustumCull=1

; Disable as it can lead to slow shader compile, meant to be used with multiple machines

r.XGEShaderCompile=0

; Use async for cleanup and dispatch of tick functions (game logic)

tick.AllowAsyncTickCleanup=1

tick.AllowAsyncTickDispatch=1

; Lower value ensure textures are loaded in without delay

lod.TemporalLag=0

; Use cache for mesh pass processors (might reduce stuttering)

r.EnableMeshPassProcessorsCache=1

DOESN’T WORK ANYMORE

Far Object Rendering

; Default - 1 (90FPS), 0.8 (102FPS), 0.7 (108FPS), 0.5 (120FPS)
; Yes you can get up to 30FPS boost depending if you care about the far objects
; FPS boost is not as big on GTX 1060
; Don't use 0.4 or below, you'll fall through the ground/lighting issues
wp.Runtime.KuroRuntimeStreamingRangeOverallScale=0.8

By setting the streaming range overall scale to 0.8 boosts the FPS quite a bit for very little change, even when CPU/GPU is not at 100% as shown in the comparison pictures. Not sure if game engine bottleneck or just poor optimization.

STREAMING RANGE OVERALL SCALE COMPARISON (0.5, 0.7, 0.8, 1)

Lens Flare

; Lower value enables lens flare effect
r.kuro.LensflareSunDiskSize=0.1

The game has lens flare off by default except for the sun which uses a different command. Prefer to have it off as this effect annoys me.

Lens Flare Image Comparison