Jump to content

Fallout 4 Optimization and Performance Systems Explained


Recommended Posts

I'd say that the concept is sound, and I really can't think of any alternatives, but the execution has a lot of problems. The CK creating massive filesizes for precombined geometry is one thing, yeah, but the fact that Previs actually needs the precombined geometry files present for the user is what confuses me. The entire point of the Previs system is that it isn't using the precombined geometry's information in real time, that's all done in the editor, so I just don't get why the system wants the user to have the meshes as well. I'm pretty sure you can have generated Previs without the modded precombination files, so it's really just kind of baffling.

 

The reason for this is (probably) to prevent occlusion bugs. You can't move/scrap precombined meshes, so you don't have to worry about an occlusion mesh being left where something no longer is. Of course, I have no idea why they couldn't make previs modular and have the parts of it linked to the references in question (so that removing said reference removes just that part of the previs), but what do I know.

Link to comment
Share on other sites

 

It's only really bad from a modding point of view. The fact that it makes mod compatibility a tricky subject is part of it. The other thing that is bad would be the funky tools we get that create oversized files, the XB1 having a 150 mod cap with only 2gb space available making me and other choose to just disable the optimization or not share.

 

and

 

 

I'd say that the concept is sound, and I really can't think of any alternatives, but the execution has a lot of problems. The CK creating massive filesizes for precombined geometry is one thing, yeah, but the fact that Previs actually needs the precombined geometry files present for the user is what confuses me.

 

Both statements more or less sum up what I was pseudo-ranting/asking about. How can you devise a system that functions the way it does, then expect users with strict hardware and usage limitations (consoles) to be able to use properly crafted mods you (Bethesda) are touting as a feature to push sales?
No, I don’t think the system in and of itself is a bad idea. I get it.Now that I actually have some experience in working with the previs system I see the benefits. And for the most part it's not as painful as I thought it would be.

EDIT: I was probably a bit harsh in my previous post when I called the system F*ed up...but it really is when you consider the cross-platform situation.

What I don’t get, is the apparent lack of thought that appears to have been put into devising a system that unless is used properly can have a really detrimental effect on the gameplay and modding experience of the same people you just sold the game to. And as chucksteel said, the tools and information we’re given (or not) to make all of this happen and the oversize files would seem to force a mod author to make some tough choices to support consoles.
I guess what started me thinking about this is seeing more PS4 mods that make changes to the worldspace, but realizing those users have no chance in hell for ever getting a properly optimized mod the way other people do.
Didn’t mean to being this thread off topic at all, but it just strikes me that the optimization system as it stands seem to be largely incompatible or at the vary least, counterproductive to being able to properly support the console users that Bethesda marketed so hard to sell console modding to.
Link to comment
Share on other sites

Yeah its good in theory. Can't imagine the Umbra salesman had to do much upselling with Bethesda hehehe.

 

I'm a big OCD freak when it comes to solid 60fps. I'll do what I need to do get there or very close.

 

Your previs relies on massive amounts of calculation, hence why it takes the longest to generate. No way it could run dynamically in the main thread beside the renderer without cutting performance dramatically, its much more performance friendly to read the precalculated data. They'd need to be using a low level API. Bethesda says some calculation is done in realtime for "dynamic objects", probably MSTT objects. There are still flaws with it, still see some areas that I can see occlusion bugs with in the vanilla, mostly through windows and doors around a cell from the player.

Link to comment
Share on other sites

Seems though we got some good minds on this thread, I wanted to shamelessly advertise another thread that I started Re: War of the Commonwealth. Chime in if you got some ideas: https://forums.nexusmods.com/index.php?/topic/5571167-need-failsafe-for-movetonearestnavmeshlocation-function/

 

Regarding alternatives to precombined system, I did some thinking on this but at the end of the day I still end up feeling like you'd end up with this system. I thought about maybe utilising static collections more, as in when a designer is placing objects in CK, being able to select multiple overlapping objects and having some sort of function to "combine and optimize", but you see straight away that idea leads to the thinking of "why not do it by the whole cell or loaded area". I do think there needs to be more "micro management" of it though. Or at least better functions to detect the meshes that actually changed and only output those new files, like Vlits has found.

 

I've come to a point these days that I have massive disdain for automating anything whether it be automated patches or optimizing texture files etc (excepting LOD, I love LOD generator), I would much rather micro manage. This is where I say previs would be fine if it were dynamic but precoms are just a PITA, at least for modding.

 

On a separate note too, there are cells in the game that you can simply just add new items to and not poke anything, and for whatever reason the cell will always instantly reset (but not your power armor anymore). The whole quarry just near Concord is a prime example of a vanilla version of the bug, it constantly resets. The only 2 things I see in common is mention of survival mode by other users (including console) and potentially "initially disabling" something (but not always) and in the case where vanilla objects are not touched for the latter, I'm looking at that new type of navmesh for scrappable objects, whether or not that's involved, because it is "initally disabled" until the reference is removed. Otherwise I'm still scratching my head.

Link to comment
Share on other sites

Here's a pretty quick video rundown of the main reason that Fallout 4 has such bad performance problems:

 

 

I've looked through every game setting I can think of that could possibly impact how the game decides what objects are blocked by occlusion planes/boxes with no luck. There's a setting for occlusion accuracy in the CK under the region screen, but that only seems to impact the accuracy of objects immediately beside occluders.

 

If someone could figure out a way to get the game to more accurately cull objects it'd solve so, so many performance problems.

Link to comment
Share on other sites

I wish I had those numbers. My game bleeds draw calls like a stuck pig. But yet I tend not to dip below 35FPS, whether they be 20,000 or 35,000 calls. Still haven't figured this out yet, but I'd say that it would be the total triangle count that will be the difference, but that counter is not in F4's ENB.

 

It's Umbra's proprietary code Previs, you'd have to hassle them for an update :D

Link to comment
Share on other sites

Some settings related to Vis/Precoms from the INI dump (some are present in default):

 

bDisableComputeShaderOnCombinations=0
fAccurateOcclusionThreshold=768.0000
bDoMultithreadedVisQuery=1
fPreVisCameraBufferSize=16.0000
bPreCulledObjectsEnabled=1
bCullingBatch=0
EDIT - From newer dump - fPreVisCameraZShift=18.0000
If I find more I will post them.
EDIT - BTW people if you didn't know, when you do a saveini now, the last mod in your LO will generate an INI, well at least the dump will be named after it. I'm sussing out the new version since 1.4xx which was the dump I currently. Maybe you already knew that but for those who didn't :smile:
Link to comment
Share on other sites

When I looked more closely at the precombined meshes used in the Mechanist's Lair, I found that there are a fair number of them with a single mesh.

 

Why doesn't that surprise me. QA eat your heart out.

 

I'm mucking around with these camera angle settings above. Maybe they force more use of previs with high values at cost of more occlusion bugs

Link to comment
Share on other sites

  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...