DRAGON QUEST® XI: Echoes of an Elusive Age™

DRAGON QUEST® XI: Echoes of an Elusive Age™

Engine.ini tweaks - Increased Object Draw Distance, LOD & Shadow Quality
The 'Engine.ini' file can be found in your 'Documents\My Games\DRAGON QUEST XI\Saved\Config\WindowsNoEditor' folder.

Add the following lines:

[/script/engine.renderersettings]
r.ViewDistanceScale=5
r.SkeletalMeshLODBias=-2
r.StaticMeshLODDistanceScale=0.25

r.Shadow.MaxResolution=8192
r.Shadow.CSM.MaxCascades=16
r.Shadow.TexelsPerPixel=10
r.Shadow.RadiusThreshold=0.01

Distance/LOD may put a lot more load on your CPU depending on the scene.

Shadows will be on the GPU. If you just want to stop the pop-in without upping the resolution (and potentially tanking the framerate) use the RadiusThreshold line and ignore everything else.

Comparison screenshots:

DistanceScale: Before [i.imgur.com] / After [i.imgur.com]

LOD: Before [i.imgur.com] / After [i.imgur.com]

Shadows: Before [i.imgur.com] / After [i.imgur.com]

More shadows: Before [i.imgur.com] / After [i.imgur.com]

Performance impact is around 5-8fps with my aging 970, your mileage may vary. I've opted to just downsample and lock the game to 30fps. DistanceScale is probably the most taxing, the default is '1' so obviously that's a 5x increase, and it's probably overkill. Shadows will now be higher resolution (the actual resolution varies by map) and will no longer pop-in at close range on smaller objects like the wooden boxes as shown in the comparison above.

If anyone has found any useful tweaks/additions or better values than what I've posted above please feel free to share in here.



แก้ไขล่าสุดโดย brokebrained; 7 ก.ย. 2018 @ 5: 17am
< >
กำลังแสดง 121-135 จาก 147 ความเห็น
โพสต์ดั้งเดิมโดย Sabin Figaro:
The 7700k does substantially more per-cycle with fewer cores/threads, and since this game barely utilises 4c8t, the extras on the Ryzen - especially substantially weaker and less efficient - aren't going to help.
I'm sorry what?
https://youtu.be/Wu-3XO50X7Q?t=9m28s
โพสต์ดั้งเดิมโดย Sabin Figaro:
Did you even bother to watch the video before tripping over yourself to try and prove me wrong?
He's also using FRAPS which is extremely CPU heavy. Turn that off and games run perfect. Sorry guy you're 100% wrong-o. Even benchmarks on other CPU heavy games prove you wrong bud.
and here's your beloved Intel (i7-4770) and it runs like a slideshow
https://www.youtube.com/watch?v=OrFcg5g7lCM

So the 8-core/16 thread beats out the 4 core/8 thread and supposedly the i7-4770 has higher IPC LOL
โพสต์ดั้งเดิมโดย Sabin Figaro:
The dude was streaming *and* running a GTX1050, for crying out loud, versus the RX480 it's a no brainer. You really are a twatburger, I'm done. Enjoy shouting into the void.
SO DID THE OTHER DUDE WHO WAS RUNNING FRAPS!!!! FFS where is your common sense? The other dude used FRAPS which is extremely CPU heavy and this dude is using Shadowplay which takes barely any noticeable resources.

GTX1050 destroys DQXI, as does my 270x. This game has problems with CPU and stronger CPU's can push through those areas. So the 8core/16 thread performing better than a 4core/8 thread is well within reason. Yeah I know you blocked me but for everyone else who isn't a damn Intel fanboy can see that better CPU's = better perf on these areas.

I'm getting tired of these Intel/Nvidia fanboys that cannot be reasoned with even though facts are right there in front of their face.
แก้ไขล่าสุดโดย coffeerox; 21 ก.ย. 2018 @ 9: 21pm
โพสต์ดั้งเดิมโดย Farkenel:
โพสต์ดั้งเดิมโดย Sabin Figaro:
The 7700k does substantially more per-cycle with fewer cores/threads, and since this game barely utilises 4c8t, the extras on the Ryzen - especially substantially weaker and less efficient - aren't going to help.
Typical Intel fanboy here.

the 7700k is NOT "substantially" faster per cycle.
dude doesn't even have the numbers to back up his statement
I have monitored utilisation. my 7700k sees 68% on two threads, so none are being stressed.

also check this:

https://www.dsogaming.com/wp-content/uploads/2018/09/Dragon-Quest-XI-CPU.jpg

this shows that there is a 1-2fps difference between a 4 core/8 thread and 6 core/12 thread cpu. so explain why a ryzen destroys my cpu again?

the only thing a ryzen beats a modern i7 on is video encoding via handbrake. very few games even now benefit from more than 8 threads and those that do, don't really need them unless you're targetting high refresh rates.
แก้ไขล่าสุดโดย SenMithrarin85; 22 ก.ย. 2018 @ 9: 10am
โพสต์ดั้งเดิมโดย Farkenel:
A Ryzen beats a modern i7 by being cheaper, with more threads. It might have 10% less IPC but it just doesn't matter, like..at all. And when domething DOES utilize more threads, it will spank a Intel. Also, Intel and their questionable practises can go screw them selves. Features should not be locked one chipset or socket to another, and they change sockets WAY too many times.

"when something does utilise more threads"

exactly. WHEN. this game doesn't even use 8 threads let alone 16. the bottleneck is the engine not the cpu.

hence ACO which is far more demanding gives me a higher min fps and stays above 60 despite choking all my cpu threads.

a 7700k runs 99% of games better than a ryzen because of this. I do however agree about the socket crap though
โพสต์ดั้งเดิมโดย SenMithrarin85:
exactly. WHEN. this game doesn't even use 8 threads let alone 16. the bottleneck is the engine not the cpu.
It's not about how the game doesn't use 8 threads. It's that as an 8 core, it's able to spread the workload across those 8 cores and churn more work at the same time versus the i7 which does it across 4. We can see the effect of this in the video where the Ryzen 8/16 outperforms the 4/8 by a rather large margin and that's WITH the Ryzen handicapped since it ran FRAPS. That's on top of the Ryzen having a lower IPC than the 4770K.

I'm sure that if we introduced an Intel 6/12 or 8/16 into the mix, we'd see the same results.
Had a look at this for a friend, sussed out some variables from Havok and supplemented with UE4 variable manual. I don't know which ones actually work for this game, but could be fun for someone to investigate :)

[SystemSettings]
;Resolution Scale + Upscaling
r.ScreenPercentage=100
; To render in lower resolution and upscale for better performance (or downscaling).
; game default = 100

;r.Upscale.Quality=1
; 0: Nearest filtering
; 1: Simple Bilinear
; 2: 4 tap bilinear
; 3: Directional blur with unsharp mask upsample. (default)

;r.Upscale.Softness
; To scale up with higher quality loosing some sharpness
; 0..1 (0.3 is good for ScreenPercentage 90)


;Pre-load Textures + Texture Quality

r.Streaming.PoolSize=0
; How much VRAM you want squad to use.
; When set to 0, the pool size will be unlimited.

r.Streaming.MaxTempMemoryAllowed=256
; game default = 40, lets increase it a little

r.Streaming.FullyLoadUsedTextures=1
; game default = 0

r.Streaming.FramesForFullUpdate=1
; game default = 5

r.Streaming.HLODStrategy=2
; forces all LOD mips to be loaded rather than streamed. game default = 0
; This controls the loading strategy for hierarchical LOD textures :
; 0 : Allow streaming of all mips
; 1 : Only stream the last mip. The other mips are always loaded.
; 2 : Don't stream any mips. All mips are always loaded.

r.Streaming.MipBias=0
; 0: use full resolution (default) Each value above 0 will cut all textures in game by 50%.

r.MaxAnisotropy=16
; Filter method for textures - 0 to 8. 16 is possible but probably kill your frames. game default = 8

r.MaterialQualityLevel=1
; 0 corresponds to low quality materials, as defined by quality switches in materials,
; 1 corresponds to high.

;View Distance
r.ViewDistanceScale=2.5
; increase render distance. game default = 1

;Anti-aliasing
r.DefaultFeature.AntiAliasing=2
; Engine default (project setting) for AntiAliasingMethod is (postprocess volume/camera/game setting still can override)
; 0: off (no anti-aliasing)
; 1: FXAA (faster than TemporalAA but much more shimmering for non static cases)
; 2: TemporalAA (default)

r.PostProcessAAQuality=6
; Defines the postprocess anti aliasing method which allows to adjust for quality or performance.
; 0:off,
; 1:very low (faster FXAA),
; 2:low (FXAA),
; 3:medium (faster TemporalAA),
; 4:high (default TemporalAA),
; 5:very high,
; 6:max

r.TemporalAA.Upsampling=1
;n/a

r.TemporalAACatmullRom=1
;n/a

r.TemporalAASamples=16
; Number of jittered positions for temporal AA (4, 8=default, 16, 32, 64).

r.TemporalAAPauseCorrect=1
; game default = 1

r.TemporalAACurrentFrameWeight=0.45

r.TemporalAAFilterSize=0.5

r.TemporalAASharpness=0.5
; Sharpness of temporal AA (0.0 = smoother, 1.0 = sharper).

;Post-processing

;Ambient Occlusion
r.AmbientOcclusionLevels=3
; Defines how many mip levels are using during the ambient occlusion calculation. This is useful when tweaking the algorithm.
; 0:none, 1:one, 2:two, 3:three(default), 4:four(larger at little cost but can flicker)

r.AmbientOcclusionRadiusScale=1
; Allows to scale the ambient occlusion radius (SSAO).
; 0:off, 1.0:normal, <1:smaller, >1:larger

r.AmbientOcclusionSampleSetQuality=1
; Defines how many samples we use for ScreenSpace Ambient Occlusion
; -1: sample count depends on post process settings (default)
; 0: low sample count (defined in shader, 3 * 2)
; 1: high sample count (defined in shader, 6 * 2)


r.RenderTargetPoolMin=400
;If the render target pool size (in MB) is below this number there is no deallocation of rendertargets. Default is 200 MB.

;Lens Flare
r.LensFlareQuality=2
; 0: off but best for performance
; 1: low quality with good performance
; 2: good quality (default)
; 3: very good quality but bad performance

r.SceneColorFringeQuality=1
; 0: off but best for performance
; 1: 3 texture samples (default)


;Tone/Color
r.TonemapperQuality=1
; 1: high (default, with high frequency pixel pattern to fight 8 bit color quantization)
; 0: low (minor performance benefit)

r.Tonemapper.GrainQuantization=1

;Subsurface
r.SubsurfaceQuality=1
; Define the quality of the Screenspace subsurface scattering postprocess.
; 0: low quality for speculars on subsurface materials
; 1: higher quality as specular is separated before screenspace blurring (Only used if SceneColor has an alpha channel)

;Screen Space Reflections
r.SSR.Quality=3
; Whether to use screen space reflections and at what quality setting.
; (limits the setting in the post process settings which has a different scale)
; (costs performance, adds more visual realism but the technique has limits)
; 0: off (default)
; 1: low (no glossy)
; 2: medium (no glossy)
; 3: high (glossy/using roughness, few samples)
; 4: very high (likely too slow for real-time)


;Screen Space Subsurface Scattering
r.SSS.Filter=1
; 0: point filter (useful for testing, could be cleaner)
; 1: bilinear filter

r.SSS.Scale= 1
; n/a

r.SSS.SampleSet=2
; 0: lowest quality
; 1: medium quality
; 2: high quality (default)

;Lighting
r.LightFunctionQuality=2
; Defines the light function quality which allows to adjust for quality or performance.
; <=0: off (fastest)
; 1: low quality (e.g. half res with blurring, not yet implemented)
; 2: normal quality (default)
; 3: high quality (e.g. super-sampled or colored, not yet implemented)

r.LightShafts=1
; Whether light shafts are allowed to be rendered, defaults to 1.

r.LightShaftQuality=1
; Defines the light shaft quality.
; 0: off
; 1: on (default)


r.EyeAdaptationQuality=2
; Defines the eye adaptation quality which allows to adjust for quality or performance.
; <=0: off (fastest)
; 1: low quality (e.g. non histogram based, not yet implemented)
; 2: normal quality (default)
; 3: high quality (e.g. screen position localized, not yet implemented)

;Shadows
r.ShadowQuality=5 ;Defines the shadow method which allows to adjust for quality or performance.
; 0:off,
; 1:low(unfiltered),
; 2:low .. 5:max (default)

r.Shadow.CSM.MaxCascades=4
; the maximum number of cascades with which to render dynamic directional light shadows.
; above 3 doesn't seem to make any difference, try lowering it if you like.
; game default = 10

r.Shadow.CSM.MaxFarCascades=0
; n/a

r.Shadow.AllowForegroundShadows=1
; n/a

r.Shadow.MaxResolution=2048
; Max square dimensions (in texels) allowed for rendering shadow depths. Range 4 to hardware limit. Higher = better quality shadows but at a performance cost.
; anything higher than 4096 is placebo, best performance with 2048. game default = 2048


r.Shadow.RadiusThreshold=0.015
; Cull shadow casters if they are too small, value is the minimal screen space bounding sphere radius
(default 0.03)
; lower value = further shadow distance. game default = 0.03

r.Shadow.DistanceScale=1.0
; Scalability option to trade shadow distance versus performance for directional lights (clamped within a reasonable range).
; <1: shorter distance
; 1: normal (default)
; >1: larger distance

r.DistanceFieldShadowing=1
; n/a

r.DistanceFieldAO=1
; n/a

r.Shadow.CSM.TransitionScale=1.0
; Allows to scale the cascaded shadow map transition region. Clamped within 0..2.
; 0: no transition (fastest)
; 1: as specific in the light settings (default)
; 2: 2x larger than what was specified in the light

;Preshadows
r.Shadow.Preshadows=1
; Whether to allow preshadows (static world casting on character)

r.Shadow.PreShadowResolutionFactor=2
; Mulitplier for preshadow resolution

r.Shadow.CachePreshadow=1
; Whether preshadows can be cached as an optimization


;Other Effects
r.TranslucencyLightingVolumeDim=64
; Dimensions of the volume textures used for translucency lighting. Larger textures result in higher resolution but lower performance.

;Skeletal Mesh LOD Bias
r.SkeletalMeshLODBias=-2 ; increase character LODs. game default = 0
r.StaticMeshLODDistanceScale=0.33 ;Scale factor for the screen radius used in computing discrete LOD for skeletal meshes. (0.25-1) increase static mesh LOD distances, lower = larger distance. game default = 1


r.Fog=0
; 0 = no fog
; 1 = fog



;Grass and Foilage
foliage.DensityScale=2

grass.DensityScale=2

foliage.LODDistanceScale=5
; increase grass LOD distance, not much perf impact. game default = 1

foliage.MinInstancesPerOcclusionQuery=1024
; game default = 256, but UE4 recommended is 1024-65536...


; Reflection/Refraction
r.ReflectionEnvironment=1
; Whether to render the reflection environment feature, which implements local reflections through Reflection Capture actors.
; 0:off,
; 1:on and blend with scene,
; 2:on and overwrite scene.

r.RefractionQuality=3
; Defines the distorion/refraction quality which allows to adjust for quality or performance.
; <=0: off (fastest)
; 1: low quality (not yet implemented)
; 2: normal quality (default)
; 3: high quality (e.g. color fringe, not yet implemented)

;Optimisations

r.SkinCaching=1
; Whether or not to use the GPU compute skinning cache.
; This will perform skinning on a compute job and not skin on the vertex shader.
; GPUSkinVertexFactory.usf needs to be touched to cause a recompile if this changes.
; 0 is off(default), 1 is on

r.UseShaderCaching=1 ; game default = 0
r.UseShaderPredraw=1 ; game default = 0

r.OptimizeForUAVPerformance 1
; Allows to profile if hardware has a performance cost due to render target reuse
; 0: Optimize for GPU memory savings and reuse render targets (default)
; 1: Optimize for GPU performance (might render faster but can require more GPU memory)
; game default=0 (optimizes for memory instead)



;Misc
a.URO.ForceInterpolation=1 ; game default = 0
a.URO.ForceAnimRate=2 ; 1 = 30fps, 2 = 60fps? game default = 0

r.MaxQualityMode= 1
; If set to 1, override certain system settings to highest quality regardless of performance impact


r.TrueSkyQuality=1
r.GroundClutterQuality=1
r.IBLQuality=1
r.HFShadowQuality=3


r.SceneColorFormat=4

r.DetailMode=2
; Current detail mode; determines whether components of actors should be updated/ ticked.
; 0: low, show only object with DetailMode low or higher
; 1: medium, show all object with DetailMode medium or higher
; 2: high, show all objects (default)


r.TranslucencyVolumeBlur=1
; Whether to blur the translucent lighting volumes.
; 0:off, default is 1

r.MinScreenRadiusForLights=0.015 ; game default = 0.03
r.MinScreenRadiusForSmallLights=0.005 ; game default = 0.01
; Threshold below which lights will be culled.


;MSAA
; r.MSAA.CompositingSampleCount=8
; r.MSAACount=8


What settings should I tweak to have a performance similar to Shadow 2 but without the brutal downgrade from Shadow 3?
โพสต์ดั้งเดิมโดย Bonza:
Had a look at this for a friend, sussed out some variables from Havok and supplemented with UE4 variable manual. I don't know which ones actually work for this game, but could be fun for someone to investigate :)
Nice work, I'll have to try merging some of these in with my config.
BTW if you want a list of all the vars the game actually uses I posted one here: https://pastebin.com/GXh7MN2W
That's dumped from the game at runtime, so it should be every cvar in the game.

Also if you want to try messing with these cvars while it's running my DQXIHook re-enables the UE4 console, works with the majority of cvars: https://steamcommunity.com/app/742120/discussions/0/1732087825006394099/
แก้ไขล่าสุดโดย Havoc; 28 ก.ย. 2018 @ 9: 15am
โพสต์ดั้งเดิมโดย aweigh:
If you're really hurting for FPS the biggest offender is:

2. The r.distanceScale value set it to 0.5, which is as low as it'll go I believe. ♥♥♥♥ will be poppin-in all over the place but hey, it's for performance!

Thank you. This one tweak freed up a good 20 or so FPS for me.
i've been pretty happy with my performance for the past 100 game hours. at worst its been 40 fps but in most areas in runs at 60.
i run the game maxed out at 1920x1080 with a pretty old cpu:
i5-3450 (4cpu) ~3,7GHz
gtx1060 6GB
16gb ram
win7
(no ingame overlays and recently formatted the pc)

using a slightly tweaked version from the OP to further enhance the graphics, but less overkill:
[/script/engine.renderersettings]
r.ViewDistanceScale=1.5
r.SkeletalMeshLODBias=-1
r.PostProcessAAQuality=6
r.StaticMeshLODDistanceScale=0.3
r.MaxAnisotropy=16
r.EyeAdaptationQuality=1.5
r.Tonemapper.Sharpen=0.333
r.Tonemapper.GrainQuantization=1
foliage.LODDistanceScale=1.5
r.DefaultFeature.MotionBlur=True

[SystemSettings]
r.MotionBlurQuality=4
r.MotionBlur.Amount=0.3
r.MotionBlur.Max=1
r.MotionBlur.Scale=1
r.MotionBlurSeparable=1

the motionblur is really sweet, its barely noticable and can only be seen during fast moving characters/monsters/effects, not during camera panning.
example:
https://steamcommunity.com/sharedfiles/filedetails/?id=1524405160
its hard to capture motion blur well with a screenshot so heres another example. notice how most of the scene appears sharp except for the claw and tail, which are moving really fast:
https://steamcommunity.com/sharedfiles/filedetails/?id=1517318715

To quote my own topic. Perhaps this one is better suited:

โพสต์ดั้งเดิมโดย Luke:
Hi DQ players,

I currently added the following to the engine.ini file of my GF's installation (streaming it to TV):[/script/engine.renderersettings]
r.Shadow.RadiusThreshold=0.0075
r.SkeletalMeshLODBias=-2
r.StaticMeshLODDistanceScale=0.25
r.ViewDistanceScale=4

It already looks way better (I mainly stayed away from the other ones, because I wasn't sure what the actual effect would be). There are two things still bothering me.

1. I can still see shadows appear below tall grass and/or shrubs when walking near. Is that fixable or just part of the game? I was hoping the Shadow.RadiusThreshold would fix that.

2. In certain areas, for instance, in the Kingsbarrow, the shadows on stuff like the walls changes very clearly when moving the camera. It becomes darker or something. Fallout 4 also does this when nightfall is around the corner. Is there something to fix this or is this also caused by something else?

Any ideas? Thanks for your time in advance!
I'd like to simplify mine too - I have a bunch of stuff copy/pasted that I'm not sure what it does either.

I do like the ambient occlusion though - I have this under both sections ([/script/engine.renderersettings] and [SystemSettings])

r.AmbientOcclusionLevels=2
r.AmbientOcclusionRadiusScale=1.5
< >
กำลังแสดง 121-135 จาก 147 ความเห็น
ต่อหน้า: 1530 50

วันที่โพสต์: 6 ก.ย. 2018 @ 12: 05pm
โพสต์: 147