So, the other day I was looking at the steam community page for CE.
EDIT: Just to clarify, I am linking the steam guide purely to give them credit for the idea and my starting point, I do not necessarily recommend that version, I went ahead and did some research on some of these settings and you’ll find my recommendation in the collapsed Engine.ini section further down in this post
Was looking for something totally different, but this guide shows up by Icebreaker about tweaking certain UE variables through the engine.ini to make your game look better.
Now, I usually don’t bother with this type of stuff as in general most games have their settings profile and hey, if the developers are happy with it, who am I to disagree, if it ain’t broke don’t fix it, right? (that’s not to say I don’t mod Skyrim to oblivion with graphical stuff like everyone else, but that’s a different story).
I had time, so I figured I’d give it a shot… I didn’t spend nearly as much time with it as I should have.
I took Icebreaker’s list…
Copy pasted it into my ini file, loaded up the game and started getting a bit paranoid over it, cuz while it seemed like my pc is handling it just fine, I did see a big jump in GPU usage compared to before and I wasn’t sure which part was the new and which was the old and what am I really looking at…
So I tried to fine-tune it a bit and at the same time look up other popular UE4 ini tweaks people have been using to both try to make their game look a bit better but also to preserve performance as much as possible… and if I was doing it, I was really trying to go after that elusive UE fps near player buildings a bit too, with little success ofc - the game does run a miniscule tiny bit better on my system than it used to, but at the same time in my opinion also looks way better… so I still call it a success.
(Hold on, lemme insert a picture here to grab your attention cuz this is just boring text)
On the left side you can see how the game looked on the default Ultra settings, on the right side how it looks now. While the scene is different, the location is roughly the same you can’t really see the tiny differences, however you can see the huge ones… like the lack of blur and the grass looking like it’s from another planet pretty much.
Now, I didn’t take proper before-after screenshots as I was too distracted by tweaking values then restarting the game, then tweaking them again etc etc… so it’s obviously not the same scene as I simply looked through my steam screenshots to try and find pictures of the same area.
More boring text about the method in the madness..
Some of the variables in Icebreakers initial template were forced to quite extremes so a couple of them I went ahead and looked up in the UE documentation and set back to what their Epic level preset would be.
Like the shadow max resolution seemed very extreme to me and that came at a hefty performance hit as well. (that one I just deleted to use the one configured for conan, preset Epic would be 1024 so 4 times as less as in Icebreaker’s version)
I also omitted the entire first section regarding viewdistance and foliage as I did not have an issue with them even prior. And I believe it was AmbientOcclusionRadiusScale if I remember right that is set to pretty much an out of bounds extreme making the game look outright sketch / cartoon -like especially building interiors, so I set that back to 1. Kept pretty much the whole Sky part thou
Basically my process was… After initially testing it as it is and not liking it, I took his values, broke it into like 4-5 sections, foliage, shadows, sky, lighting, postprocessing related etc etc. I left the ones I wanted to bother with, discarded the ones I didn’t necessarily want, then added the sections into my ini file testing after each section to see what it changed and correcting the things I didn’t like about it.
Then added a handful of texture streaming nonsense off of various websites to season it with (I’m pretty sure those don’t do much as I imagine they’re similar to the default settings and some might not be correct usage etc… I really didn’t dive into that part… it works, didn’t cause any issues and I might have gained 5-10 fps near buildings so… hmm grain of salt I guess).
This post is getting long so I’ll wrap it up… long story short, this is how my
Engine.ini file looks in my
[SystemSettings] r.bForceCPUAccessToGPUSkinVerts=1 r.MaxAnisotropy=16 r.Fog=1 r.FogDensity=0.03 r.FogStartDistance=4 r.TrueSkyQuality=1 r.SkyLightingQuality=1 r.VolumetricCloud=1 r.VolumetricCloud.SkyAO=1 r.VolumetricCloud.SkyAO.Filtering=1 r.VolumetricRenderTarget.Mode=1 r.SkylightIntensityMultiplier=0.4 r.SkyAtmosphere=1 r.SupportSkyAtmosphere=1 r.SkyAtmosphere.LUT32=1 r.SkyAtmosphere.FastSkyLUT=0 r.SkyAtmosphere.AerialPerspectiveLUT.FastApplyOnOpaque=0 r.SkyAtmosphere.TransmittanceLUT.UseSmallFormat=0 r.SkyAtmosphere.AerialPerspectiveLUT.Depth=96 r.SkyAtmosphere.AerialPerspectiveLUT.DepthResolution=16.0 r.SkyAtmosphere.SampleCountMin=64.0 r.SkyAtmosphere.SampleCountMax=128.0 r.SkyAtmosphere.DistanceToSampleCountMax=128 r.LightFunctionQuality=1 r.AmbientOcclusionLevels=2 r.AmbientOcclusionMaxQuality=100 r.AmbientOcclusionRadiusScale=1 r.RefractionQuality=2 r.DefaultFeature.AntiAliasing=2 r.PostProcessAAQuality=6 r.ScreenPercentage=100 r.TemporalAASamples=32 r.TemporalAACurrentFrameWeight=0.12 r.TemporalAAFilterSize=1.0 r.TemporalAACatmullRom=1 r.TemporalAAPauseCorrect=1 r.TemporalAASharpness=0.5 r.Color.Mid=0.43 r.Tonemapper.Quality=3 r.Tonemapper.Sharpen=0.33 r.TonemapperGamma=3.2 r.SceneColorFringe.Max=0 r.SceneColorFringeQuality=1 r.LensFlareQuality=2 r.Tonemapper.GrainQuantization=1 r.SSR.Quality=3 r.SSR.MaxRoughness=1 r.SSS.Scale=1 r.SSS.SampleSet=2 r.SSGI.Quality=3 r.ShadowQuality=3 r.Shadow.CSM.TransitionScale=1.0 r.DistanceFieldShadowing=1 r.Shadow.PerObject=1 r.AllowLandscapeShadows=1 r.Shadow.AllowForegroundShadows=1 r.Shadow.PreShadowResolutionFactor=1.0 r.Shadow.FadeResolution=0 r.Shadow.MaxPointCasters=1 r.Shadow.CSMDepthBias=20 [/Script/Engine.RendererSettings] r.Streaming.Boost=0 r.Streaming.PoolSize=0 r.Streaming.LimitPoolSizeToVRAM=1 r.Streaming.DefragDynamicBounds=1 r.Streaming.HLODStrategy=2 r.Streaming.FullyLoadUsedTextures=1 niagara.CreateShadersOnLoad=1 r.CreateShadersOnLoad=1 D3D12.PSO.DiskCache=1 D3D12.PSO.DriverOptimizedDiskCache=1 r.HZBOcclusion=0 r.AllowOcclusionQueries=1 r.Shaders.Optimize=1 [TextureStreaming] r.Streaming.Boost=1 r.Streaming.FullyLoadUsedTextures=1 r.Streaming.HLODStrategy=2 r.bForceCPUAccessToGPUSkinVerts=True r.Streaming.FramesForFullUpdate=60 r.Streaming.DropMips=0 r.Streaming.MipBias=0 r.Streaming.UseAllMips=1 r.Streaming.UseMaterialData=1 r.Streaming.UseNewMetrics=1 r.Streaming.UsePerTextureBias=1 r.Shaders.Optimize=1 r.Shaders.FastMath=1 r.UseShaderCaching=1 r.UseShaderPredraw=1 r.UseAsyncShaderPrecompilation=1 r.TargetPrecompileFrameTime=13 r.PredrawBatchTime=13 r.AccelPredrawBatchTime=0 r.AccelTargetPrecompileFrameTime=0 r.Streaming.DefragDynamicBounds=1 s.AsyncLoadingThreadEnabled=True r.Streaming.PoolSize=0 [ConsoleVariables] AllowAsyncRenderThreadUpdates=1 AllowAsyncRenderThreadUpdates=1 AllowAsyncRenderThreadUpdatesDuringGamethreadUpdates=1 AllowAsyncRenderThreadUpdatesDuringGamethreadUpdates=1 AllowAsyncRenderThreadUpdatesEditor=1 AllowAsyncRenderThreadUpdatesEditor=1 s.AsyncLoadingThreadEnabled=True
Now the list is not “perfect” in fact I’m sure some of that will cause some issue for one person or another. Keep in mind these were intended for a similar computer spec described in Icebreaker’s thread. Other than this my game was set to Ultra 1080p before these tweaks.
Bottom line, the credit goes to Icebreaker on this one, I just stumbled upon his guide and went down a bit of a rabbithole to tweak it
In any case, I liked the result so that’s why I’m sharing it here, maybe someone else will like it too.