Jump to content

Fallout 4 Optimization and Performance Systems Explained


Recommended Posts

Does anyone know how much a texture impacts performance versus a triangle on a mesh?

 

I've edited about 60 LODs and the performance gain seems really good, around 10 FPS in certain areas. The only problem is that Bethesda designed their LOD meshes so that their UVs are optimized for the LOD texture atlas. Since the Atlas is a fixed size I would only have a limited amount of space with which to add new textures for the lower poly LODs.

 

On the other hand, from what I understand the lod generation script for xEdit can create LODs with their own textures, outside of the Atlas. This would potentially allow me to simplify even more meshes.

 

What I'd like to know is when it would be better to create new texture files, or just stick with the higher poly models. In certain cases there are LOD meshes with thousands or hundreds of tris, which I'd be able to drastically cut down on, as well as buildings with only 10 or 20 tris, but which can repeat dozens of times. I'm not sure what a good balance to strike may be.

Link to comment
Share on other sites

Just wanted to add an interesting find RE PreVis, where regenerating it didn't come out as planned.

 

I recently cleaned up a mod called Starlight Bright Again by greekrage, but in the original version there where 2 windows that never generate correctly as in they generated as if they were solid walls and occlusion bugs (disappearing world) is seen througj them. These walls were joined on a corner. The only common denominator was a dining table that was touching the wall.

 

Long story short I think it detects how many triangles are overlapping on an eligible object and then goes from there. I haven't looked at any of the shuffled meshes to see if they changed groups if they were touching/overlapping multiple meshes but perhaps only combining on one side, if you get my drift.

Link to comment
Share on other sites

Has anyone here thought about giving texture atlases a shot?

 

The main bottleneck in FO4 seems to be the amount of draw calls that the engine can handle, not necessarily the hardware. My CPU and GPU are rarely taxed at over 50-60%, even when scenes are hitting around 17-20k calls.

 

My thought is that one of the best ways to combat this would be to start designing texture atlases for the game's regular textures, not just LODs. There are a number of textures and materials which are pretty often found in groups, especially on buildings buildings, and my guess is that a large number of these could be combined. For example, every different color of wall in the hightech model set is its own set of textures, but they're almost always used in groups alongside one another. Batching as many of these together as possible would likely be a huge help.

 

The big downside that I'm imagining is more VRAM space being used up by loading large amounts of unneeded texture space. However, even in the worst case scenario of 20,000 draw calls my VRAM never tops 6k with the entire HD architecture pack running, and ENBoost would allow players to jump over their VRAM limits. It'd cause stuttering, but higher overall FPS.

 

I'm also aware that mipmap bleeding may be an issue, but after looking at the vanilla LOD texture atlas it looks like F4 doesn't have that problem. There's no spacing whatsoever between the mips, so if worst comes to worst I could just hand make the maps.

Link to comment
Share on other sites

1. You can't put tiled textures on atlas (almost all textures are tiled usually on normal non LOD objects).

2. This will break material swaps for those meshes unless you atlas them too, which will further increase VRAM usage.

Link to comment
Share on other sites

There are a number of textures which don't tile, especially those used in exterior architecture. However, you're right, material swaps pose a pretty big problem, there's no way to easily atlas many of the textures which I'm looking at without having to create a new .nif for every material type. This would probably add hundreds of MB in .nifs, and would be a massive pain in the ass to place all of the new meshes in the world. For what it's worth, though, it should be doable to combine textures that rely on single gradiants, but the performance gain caused by that seems pretty negligible.

Edited by Giggilyomeromicon
Link to comment
Share on other sites

One note for anyone using the precombined cleaning script: make sure you generate the Previs after you use the script. Apparently the .uvd file contains info about which .ba2 file the precombineds are stored in, and it prevents the other precombineds from rendering (or something).

Link to comment
Share on other sites

  • Recently Browsing   0 members

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