adjustable LOD cutoffs
-
Allow players to manualy adjust lod cutoffs based on individual pc performance. like having a slider in the options menu in game.
Mutliple LODs exist in order to make performance better when there are too many units on screen at any one time.
This works by showing you lower res images the further you zoom out.
This is great for players who have low performing computers or moniters but looks really ugly for those of us running 4k.
However most people these days have very high performing computers, and would like to make the most of them even if faf only uses single core.
Single core stronk in modern computers!Most things get very ugly at the cut off like units and even props like tress and rocks. some dont even have a lod1 so they just disapear all together past 130 zoom.
-
Experimental graphics option should alleviate that a little bit by pushing all lod's by another 20-30%. But the answer to why can't we have the game show everything all the time is performance that is gonna massively vary between the maps and the game states. A game that is fine at the beginning might easily drop below dozen FPS where there is bunch of broken crap on it, like tree groups or stuff as the game is gonna simply throw too many draw calls at your GPU.
You can see the performance hit here: https://www.youtube.com/watch?v=dAqlgrOjy2Q
Also, could ask more technically inclined people if it's possible to edit this parts of lua yourself to see if it's possible to push the experimental graphics option even more by yourself.
https://github.com/FAForever/fa/blob/develop/lua/ui/game/gamemain.lua#L351 -
@TheVVheelboy said in adjustable LOD cutoffs:
Also, could ask more technically inclined people if it's possible to edit this parts of lua yourself to see if it's possible to push the experimental graphics option even more by yourself.
Yes, you can call these two conexecutes from a ui mod as well. There are more settings possible. There are also mods that change a lot of them, but I forgot the name. I can look it up later, but if you search for "graphics" in the mod vault you might find it already
-
I wrote a small mod in 2018 to automatically adjust the LODs.
The function is located in AdvancedLOD\hook\lua\system\Blueprints.lua.
There, you can experiment with different settings to find what works best for you.
The code is documented and should clearly describe what happens in each line.The downside is that LOD settings are specified in the blueprint and then managed by the C# engine.
This means it can only be done with a SIM mod.If anyone is interested in experimenting with it or using it as a basis for something else, here is the code:
-
There is a Improved Graphics 2024 mod in the vault that changes a bunch of render settings. You can have a look there and modify the mod to your liking.
I also found a text file on my hard drive where I collected some explanations of some of the graphics settings. No guarantees on correctness as it is based on my understanding of the time and also some years old.ConExecute("ren_DecalNormalLodCutoff 560")
ConExecute("ren_DecalAlbedoLodCutoff 560")
ConExecute("fog_DistanceFog off") -- map fog
ConExecute("efx_WaveCutoff 560")
ConExecute("UI_StrategicProjectileLOD 185") --standard 128, there is no apparent reason for changes
ConExecute("ren_ShorelineCutoff 560")
ConExecute("ren_SyncTerrainLOD 560")
ConExecute("cam_HighLOD 0.2") --sets the LOD value for the detail level “high” that can be selected in the menu
ConExecute("cam_MediumLOD 0.3") --sets the LOD value for the detail level “medium” that can be selected in the menu
ConExecute("cam_LowLOD 0.4") --sets the LOD value for the detail level “low” that can be selected in the menu
ConExecute("cam_DefaultLOD 0.2")
ConExecute("cam_SetLOD 0.2")
ConExecute("cam_DefaultMiniLOD 1.65")
ConExecute("ren_shadowsize 4096") --Resolution of the shadow map
ConExecute("ren_shadowLOD 400") --At what FocusDistance do we stop rendering shadows
ConExecute("cam_ShakeMult 0.1")
ConExecute("ren_IgnoreDecalLOD") --force render decals
ConExecute("ren_Meshdissolve 40") --double default value, individual value to be compared with LODMetric is defined in the blueprint exact function and interaction with ren_MeshdissolveCutoff unclearSC_CameraScaleLOD 0 or 1 or 2 most likely determines which of the three LOD scales is used
LODMetric is the FocusDistance multiplied by cam_HighLOD, cam_MediumLOD or cam_LowLOD, measured at the respective location
Depending on FocusDistance, the strategic symbols are displayed (Standart 130, set in the blueprint)
-
A few years ago I was debugging the engine to make adjustable LOD's cutoffs possible. I mean controlling all cutoffs from UI so this won't cause a desync. Managed to find a good place for a hook, where modifying values doesn't cause desync, but I just didn't have enough motivation to continue tbh
Playing with numbers directly via debuger and making a working function that allows all that from Lua - these are 2 different stories.
I know Az0t made a lot of work to make C++ engine patches easier (instead of writing all in asm), so who knows, mb at some point we'll have this LOD feature too.
Personally I don't care much about graphics, but, for example, being able to increase all wreck's cutoffs so it's easier to spot reclaim fields, would be very useful (also all these black wreck models when zooming out will be a good notification for a player about reclaiming
Anyway, even this wasn't enough for me to continue
-
I don't think this would be a good thing. I have an extremely powerful computer but recently (over the last few months) noticed I was getting in-game crashes after going years with none. The crashes would occur anytime I was zooming in or out really quickly. The game would just freeze and after some messing around turning anti aliasing off is what worked and I haven't had crashes for a few days now.
I know it maybe seems like it's not related to this thread but it feels like it is because I sthnk the overload of rendering when zooming so quick is what was causing the system crashes. Strange that it would all the sudden start happening but nonetheless it proves the point that draw distances are important.
I'd love to be able to see reclaim and such as I'm zoomed out more but with this game it just seems like you got to take what you get.