Jump to content

Fallout 4 Optimization and Performance Systems Explained


Recommended Posts

But chucksteel's method sounds best. If that is for Placed References like I think it is (as opposed to base objects), FO4Edit would be useful for applying the same material to tons of records.

Here you go

{
  Copy material swap from the base object to the reference itself
}
unit FO4ApplyMaterialSwapsToReferences;

function Process(e: IInterface): Integer;
var
  mswp: string;
begin
  if Signature(e) <> 'REFR' then
    Exit;
  
  // skip reference if it already has material swap applied
  if ElementExists(e, 'XMSP') then
    Exit;
  
  // get material swap from the base object
  mswp := GetElementEditValues(WinningOverride(BaseRecord(e)), 'Model\MODS');
  
  // apply swap to the reference
  if mswp <> '' then
    SetElementEditValues(e, 'XMSP', mswp);
end;

end.

Link to comment
Share on other sites

  • 1 month later...

I'm hoping for some input from those who have had success in doing interior cell pre-calc. I considered making a new thread for this question, but felt it might be more beneficial to include it here:

 

I’ve finally made my first attempt at creating precombines and previs for a new interior cell, and the results have been pretty dismal to say the least. It’s a newly created cell for a player home.

The interior isn’t huge, a simple two story 6W x 8L rectangle (measured with standard 4x4 floor pieces). Half is a wide open warehouse space, the rest sectioned off into small rooms. Nothing earth shattering. A moderate amount of clutter at this point, but no more than I’ve ever done in the past.

 

My process has been the same as I have done for exterior cells:
> Generate precombines for current cell
> Generate visibility for current cell
> Generate precombined visibility for current cell

 

I had tested this a while back, long before I started adding any detail assets to test how things would fare with stairs and such. All went perfectly without a hitch. It just worked.

 

Now that I’m getting closer to finishing, I thought I would test things again with some detail assets added. Epic fail. Previs and visibility went fine, but precombined visibility was a disaster. It took about an hour and resulted in a 46MB Vis file…an hour with a 46MB file for a small interior cell????

 

When I went in-game to test there was a huge black wall running through the middle of the cell, no collision on it and looked smeared and low res like it was an LOD texture you were looking at up close. Huge portions of the interior would blink in and out as I moved around as you would expect if there were room bound issues, but I didn’t have room bounds. The cell does shows exterior LOD through the windows, but I don’t see how that could be related (as it worked fine previously)...just mentioning it as background info.

 

My first and only guess is that there is a mesh that the process didn’t like. I disabled several references I thought might be suspect and tried again. Generating precombined visibility went for about 35 minutes then it just stopped progressing. CK didn’t crash, it just stopped doing anything and sat at the same progress point for another 15 minutes before I killed it.

 

So, two questions:
1. Barring a bad mesh, is there any commonly known issue that would cause the vis generation to puke and die like this with such a huge file size?

 

2. Under the precombine options of the World menu there is a “Precombine Geometry for Interior Cells” option. Is that what I should be using instead? I can find no info on that option anywhere. Logically it sounds like what I should be using, but this is the CK we’re taking about...logic doesn’t generally apply.

 

For now I’ve fallen back to using room bounds and portals. The cell really wasn’t designed with them in mind as I had intended on going with precombines. But I’ve made some design compromises and room bounds work well enough. Just looking for some input before I spend any more lost hours trying to get the previs to work. Really unsure what I'm doing wrong as I've never had any issues working with exteriors.

Link to comment
Share on other sites

Having successfully generated vis and precombines for interiors before (using either "generate for loaded area" or "generate for loaded cell" - doesnt make a difference for interiors it seems), there is almost certainly something wonky about your cell. I'd try copying statics over and see when it starts popping up. But for a small interior cell you likely don't need Vis/Previs anyway. I found precombines had the bigger impact especially when you also abuse dynamic lights.

Link to comment
Share on other sites

Thanks, payl0ad. Was pretty sure there wasn't any special dance I had to do for interiors but figured I'd ask. Just never have had any problems doing this before, and it did work fine for this cell previously. Pretty much writing it off to something in one of the meshes I've added since then. I've tried again disabling everything that is one of my own than I've modified, and it still pukes. At this point I'm just going with room bounds because I have them set up now and they just work. The cell has lots of big open spaces (meaning big wide portals) which is why I was initially thinking precombines/previs might be better. Still want to figure this out for future reference and will try adding the statics to a new cell as you suggested at some point.

Link to comment
Share on other sites

If you look a few pages back or so, I did it for Vault 88. I can't remember off top of my head, but I believe I just did the current cell option, and did not do precombined Vis (maybe I did). It is much more straight forward then exteriors however. There was some issue with putting placed objects on the floor, but I did not encounter that issue when I did it the way I did.
Link to comment
Share on other sites

Thanks...I did look back (always refer to this thread when doing this stuff). You did mention doing both Vis and precombined Vis for Vault 88. I'm not concerned about placing objects on the floors since this doesn't have a workshop. Was more focused on performance to be honest. Room bounds will suffice for that. I did try without doing Vis (just precombined Vis) and it wanted do the same one hour progression as it did before.

 

I was able to do some exterior generation without a hitch last night, so at least I know I can rule out any issues with my CK install.

Link to comment
Share on other sites

Thanks...I did look back (always refer to this thread when doing this stuff). You did mention doing both Vis and precombined Vis for Vault 88. I'm not concerned about placing objects on the floors since this doesn't have a workshop. Was more focused on performance to be honest. Room bounds will suffice for that. I did try without doing Vis (just precombined Vis) and it wanted do the same one hour progression as it did before.

 

I was able to do some exterior generation without a hitch last night, so at least I know I can rule out any issues with my CK install.

The thing with objects placed on the floor is related to the WorkshopStackableItem [AVIF:0000033D] property. Precombined meshes are automatically treated as having it, and as a result Bethesda didn't bother adding it to a lot of records they really should have had it.

 

So if you want to do something about it, you can either generate precombineds and not previs, or just add that keyword to any floor records (base record, not placed reference).

 

 

And on your original question, when I remade precombineds for The Mechanist's Lair/Vault 88, I didn't use any options that specified interiors, just the normal options you'd use for an exterior cell.

Link to comment
Share on other sites

  • 1 month later...

So guys, I've found a vanilla bug in Boston Airport between cells 12,-1 and 12,-3 where there is a ton of occlusions IF you go there before the Prydwen gets enabled. I've tried to fix it but have found that the only way to is to break Pre-Combineds. Generating new Pre-Combineds recreates the vanilla issue.

 

Any thoughts on how to fix this?

Link to comment
Share on other sites

Chuck, I would suggest you break precombineds, and only generate regular previs, this should allow previs to keep working in the cell.

 

I was doing some experiments recently where previs remaining turned on after disabling precombineds. It occurred to me thats why there is 2 options for Vis in ck, one is capable of being standalone and the other calculates in the precombineds.

 

Someone correct me if I'm wrong but this is what I'm seeing.

Link to comment
Share on other sites

  • Recently Browsing   0 members

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