Jump to content

Photo

Fallout 4 Optimization and Performance Systems Explained

precombines occlusion previs roombounds portals preculling

  • Please log in to reply
540 replies to this topic

#531
Qrsr

Qrsr

    Old hand

  • Members
  • PipPipPip
  • 965 posts

Thanks for the insight so far, i couldnt find what i would like to know doing some search through the whole article, so here my question to this one here:

 

Only disabling or moving items will break precombines
   -damanding on Fallout 4 Optimization and Performance Systems Explained

 

1) If an [Placed Object] is scaled to 0 will it affect/brake PreC/V?

2) If an [Placed Object] is swapped, replaced, e.g. FluorescentLightON02 to FluorescentLightOff02 will it affect/brake PreC/V?

 

Thanks in advance.



#532
greekrage

greekrage

    Resident poster

  • Supporter
  • PipPipPipPipPip
  • 4,447 posts

Thanks for the insight so far, i couldnt find what i would like to know doing some search through the whole article, so here my question to this one here:

 

Only disabling or moving items will break precombines
   -damanding on Fallout 4 Optimization and Performance Systems Explained

 

1) If an [Placed Object] is scaled to 0 will it affect/brake PreC/V?

2) If an [Placed Object] is swapped, replaced, e.g. FluorescentLightON02 to FluorescentLightOff02 will it affect/brake PreC/V?

 

Thanks in advance.

 I saw this yesterday  checking a new mod by some rude fellow...  That hides all vanilla settlement lights. I checked his mod in FOedit and noticed that simply sinking a light  broke previs..in several cells... Also note that precombines register the Form IDs  of the objects so swapping should also be an issue.....not to mention that precombined/previs data wont show you the change and still keep the old visually. I see this a lot in my location mods where i do texture swaps that dont show until i regenerate precombines etc..


Edited by greekrage, 12 November 2022 - 10:11 am.


#533
VIitS

VIitS

    Resident poster

  • Premium Member
  • 2,943 posts

Greekrage is right on both counts (it will break, if it didn't your changes wouldn't be visible). If you want the details why:

 

 

It will break precombineds. This is because the game compares the Version Control Info 1 (VCI1) value (in the record header, visible in xEdit) of all [placed objects] (i.e. REFRs listed in XCRI of the winning copy of the CELL*), to the PCMB timestamp in CELL record. If the VCI1 of any REFR is newer than the PCMB timestamp of the winning CELL record, both precombineds and previs are broken. Same if the VCI1 shows as "None" in xEdit (which will happen if you copy them using xEdit**).

 

Technically, you could copy that VCI1 data in xEdit using a script, or use the "Update Timestamps" option in the CK to set a new PCMB (and VISI) date, but if you do so without regenerating precombineds and previs, then your changes won't show up in game. This is because a record being in XCRI tells the game to not actually load the REFR, instead relying on the precombined nif file. That nif file has things baked into it, including model (mesh), position (and orientation) in the WRLD (or in the CELL for an interior), scale of objects, and material applied to them. 

 

*Fun fact: it looks at the winning copy of ALL REFRs in the winning XCRI. If your mod rebuilds precombineds, and it doesn't touch some of those REFRs but another mod does, the game will compare the VCI1 of the winning version of the REFR from that other mod (even if your mod is loaded at the end of your load order). If it is newer than when you rebuilt precombineds, precombineds and previs go poof. This makes sense when you consider how the game handles overrides°, but means that it is a pain to track down which mod is breaking precombineds and previs, if you notice they are breaking in-game and it doesn't happen with just your mod and the base game+DLC. Someone is working on an xEdit script to help, but it is not yet published. Once it is, I will 100% be referencing it on my mod page, as I am sure some others will  :laugh:

 

**This is intentional, as back when xEdit copied it (back in TES4 days), it caused problems for people using the Version Control system in the CK, and until FO4 it never mattered for anything else. 

 

°Once loaded, the game doesn't distinguish which plugin a winning override came from. It just discards all non-winning versions of records, with very few exceptions (REFRs and CELLs are not one of those exceptions). 



#534
Qrsr

Qrsr

    Old hand

  • Members
  • PipPipPip
  • 965 posts

 

Thanks for the insight so far, i couldnt find what i would like to know doing some search through the whole article, so here my question to this one here:

 

Only disabling or moving items will break precombines
   -damanding on Fallout 4 Optimization and Performance Systems Explained

 

1) If an [Placed Object] is scaled to 0 will it affect/brake PreC/V?

2) If an [Placed Object] is swapped, replaced, e.g. FluorescentLightON02 to FluorescentLightOff02 will it affect/brake PreC/V?

 

Thanks in advance.

 I saw this yesterday  checking a new mod by some rude fellow...  That hides all vanilla settlement lights. I checked his mod in FOedit and noticed that simply sinking a light  broke previs..in several cells... Also note that precombines register the Form IDs  of the objects so swapping should also be an issue.....not to mention that precombined/previs data wont show you the change and still keep the old visually. I see this a lot in my location mods where i do texture swaps that dont show until i regenerate precombines etc..

 

 

Im doing a lighting mod (interior cells) as well and its very brutal to see all those glowing light bulps when you removed light around them, because those light bulps are [Placed Objects] - thus i wanted to hide them. So to sum it up i cant neither

 

-disable/hide

-scale ?

-swap

-etc.

 

Simply because its a []. So technically saying i cant touch them in any way, right? I cant modify any record entry of that []? Alright seems like VIitS answered it already;

I
It will break precombineds. This is because the game compares the Version Control Info 1 (VCI1) value (in the record header, visible in xEdit) of all [placed objects] (i.e. REFRs listed in XCRI of the winning copy of the CELL*), to the PCMB timestamp in CELL record. If the VCI1 of any REFR is newer than the PCMB timestamp of the winning CELL record, both precombineds and previs are broken. Same if the VCI1 shows as "None" in xEdit (which will happen if you copy them using xEdit**).

 

So doing an override already is the prolblem, oh man, to bad.

 

Two things left,

1) Is modifying such content less brutal in interior cells?

2) If i really would "swap" an object can i simply swap the NIF in statics folder? I would like to get rid of some glowing light bulps, etc. I thought about swapping the NIF..

3) can i see Prebomined/Previs objects it in Creation Kit?

 

Thanks greekrage and VIitS and anyone doing research about it, helping the project! This will greatly increase my work now.


Edited by Qrsr, 12 November 2022 - 02:15 pm.


#535
niston

niston

    The Ring Trick

  • Premium Member
  • 2,547 posts

Interiors are often built as a single cell (or you will have loadscreens between parts of the interior, as any interior cell is just that, a single cell).

For this reason, and because most vanilla interiors have broken roombounds/portals, disabling precombines in interiors is often very much worse than in exteriors: It will inevitably result in things flickering, being invisible or being affected by the "texture smear" bug. Unless you fix the broken roombounds/portals, that is.



#536
Qrsr

Qrsr

    Old hand

  • Members
  • PipPipPip
  • 965 posts

It will break precombineds. This is because the game compares the Version Control Info 1 (VCI1) value (in the record header, visible in xEdit) of all [placed objects] (i.e. REFRs listed in XCRI of the winning copy of the CELL*), to the PCMB timestamp in CELL record. If the VCI1 of any REFR is newer than the PCMB timestamp of the winning CELL record, both precombineds and previs are broken. Same if the VCI1 shows as "None" in xEdit (which will happen if you copy them using xEdit**).

Alright, i think i overread the important factor which pretty much would have explained my question before asking ... I noticed it finally. If i replace a NIF such as a glowing Light Bulp NIF with a broken one, normally the broken one would appear ingame but since the cells content e.g. the Object which is tied to the intact Light bulp is precombind/previs it will still read/show me the intact NIF.

 

Now if i create a override record without even touching the object not even replace the NIF the data ingame is (broken) different since the timestamp is "None" and i can modify the STAT and tie whatever NIF i would like to have, e.g. swap it with a different STAT etc. thats pretty interesting and fatal at the same time.

 

Now for my little experiment - and again without all of your guidance i wouldnt experience it in time - i do the following, i track down the [Placed Object] record, create a new record with the same Position/Rotation data but different scaling thus im able to override the texture ingame without anyone noticing it. Here the example:

Spoiler

 

The [Placed Object] wont show up and the cell will remain intact. I cant think of any other way currently, maybe its better to regenerate precombines/previs?



#537
niston

niston

    The Ring Trick

  • Premium Member
  • 2,547 posts

I'd just fix the roombounds/portals, if it's an interior.

This is the old optimization system that was used before the precomb/previs madness was introduced. It works well when setup properly.

 

OTOH, regenerating precomb/previs probably isn't such a compatibility nightmare when used for interior cells.



#538
Qrsr

Qrsr

    Old hand

  • Members
  • PipPipPip
  • 965 posts

Well my plan is to create/clean close to 300 interior cells i mean ALL vanilla interior some are easy to fix since there are no [PO]s some need creative ideas.. Thus i would remove most light sources and add a standardized light system, e.g. a oil lamp will have 1 light flickering light source in center attached and will be placed where its appropiate not randomly all over the place, or fire barrels will be used instead of neon lights extra bright. Most interior arent powered or lack a working fusion generator etc, thus are totally dark and thus will be great for dungeon crawler addicts. In sum i need a crash crash course for:

 

I'd just fix the roombounds/portals, if it's an interior.

 

Thanks.



#539
84Cronos

84Cronos

    Fan

  • Premium Member
  • 343 posts
I'm working on an exterior worldspace right now and I'm getting closer to finishing it, which means that I will run some precombine/previs tests within the next few days. Can one use those technique together with occlusion planes/boxes? Is there a recommended workflow or do these things don't "like" each other?

#540
Qrsr

Qrsr

    Old hand

  • Members
  • PipPipPip
  • 965 posts

Im curious what you guys say about scrapping STAT objects?

 

Does the following apply:

 

Only disabling or moving items will break precombines

 

to this:

 

I can see that many workshopScrapRecipe_XXX records include STAT objects while scrapping some STAT will brake PreCombines and else. Most of the STAT object are [Placed Objects] and thus shouldnt be touched at all, while some of them are not BUT only in the settlement cell(s). I assume in order to gain the most performance out of the engine most of the world is PreComined/PreVis and only the objects (but not all) in a settlement cells arent.

 

I found some STAT objects which can be scrapped by vanilla already which decrease performance which in turn place alot of "???" around my head, since it doesnt make any sense, more likely it seems this game was either finished in a rush or the communication/knowledge about certain stuff was not 100%. whatever its very weird.







Also tagged with one or more of these keywords: precombines, occlusion, previs, roombounds, portals, preculling

IPB skins by Skinbox
Page loaded in: 0.684 seconds