Chaos performance

From Nexus Mods Wiki
Jump to: navigation, search

Overview

I'll tell you what I found out, an you can take it for what it's worth. I've been kind of kicking it around, but have yet to find a venue. The Articles seems like a great spot. I wish I had visited sooner. Anyhow okay so I play fallout 3 on SLI 8800 GT's in 1600X1200 with a old P4 550 Simulated twin core HT CPU Then often in SLI 32XQ AA an 16 AF from using nvidia's "override any application setting" whereby forcing Whatever AA an AF I want, mostly because fallout 3's lacks in quality an performance. Then Fallout 3 is on Raptor D:/. Probably a middle of the road system.


Fallout 3

was designed for 8000 series cards an above on max settings. So with all the added chaos from the hours of hard work we all spent building stuff. I can't say it ever ran as smooth as it should. So over the last year I kept looking for performance. Which led to things like the forced AA settings, which go against all the rules for gamming, every other game prefers to have the 3D application decide, who knew. I ran out of things to work on for performance. So eventually I was turnning down all the settings an messing with stuff an the performance wouldn't get any better in the tests. I mean you go from SLI 32XQ AA to 2X an notice no performance gain. Got to be a joke right? It wasn't I was like huh. Which I only really run the AA settings to avoid using the texture sets on stuff like the ground, but I think that's about to change.

You can't resize a picture up an keep the detail, but you can shrink it an it looks even more sharp in most cases with pictures, the same is true for our fallout textures, more so for the large an very large textures. We kind of went the wrong way. Take the 1stperson10mmpistol.dds texture map. It's 1024X1024, and only looks about an order of magnatude better than teh 512X512 map, which I like to call the poop map. Normally what would happen is we would rename that 1024X1024 texture so that it's just 10mmpistol.dds or whatever, then change the mesh to use it from now on, an upload it.

We went the wrong way of thinking though, I can't say anything because I did it too for like 8 months. What we should have done though, is take the 1024X1024 high res 1stperson texture, then open it with Paintnet, just because it's fast an easy to use, an what I have. Then resize that 1024X1024 texture down in steps, Size it down in best quality supersampling, which will save around 95% to 99% of the detail. Then save that shrinked map, in DXT-1 (highest compression) Which to the video card it's the same exact image. DXT-1 ignores the alpha channel (transparent), but most of the fallout 3 textures don't have alpha anyway, the only places you see alpha is like the radio, or the hairs on the back of the cows, (I'll never really even notice it) So you could in fact DXT-1 those too, an then they wouldn't look so nice, which is the whole point of falout, it's wasteland anyway. 1024X1024, keep the ratio, test it at half size an if it still looks okay you might could half it again if it's a small item or if the map is really huge.

But before you can shrink it, you still need the large texture, so it's not like a waste. Without the huge textures, I couldn't make the tiny ones, that look just as good, but run 10 times better.


"THE ONLY REASON THIS WORKS IS BECAUSE I SET MY PAINTNET PIXELS PER INCH TO 96, WHICH IS WHERE I TEXTURE AT ON .DDS"


So long as the other programs can set your actual res from the pixels per inch then it should work, 4096X4096 @ 96 pixels per inch looks just like 1024X1024 @ 96 pixels per inch, but that's what my monitor runs. Who knows what yall use. I found 96 somewhere I think, an set it there. I don't even really know what it should be, that's just what I use.

Resizing the 1024X1024

would keep all the detail, as far as looking at the texture in nifscope as a 3D preview, in the game you probably wouldn't be able to tell either, but the raw file size would be half, if it were 600Kb, then the resize would bring it down to around 150Kb, then the DXT-1 would probably half that as well. So now it's a tiny file. Now scale that up to the kind of maps that we make rather than bethesda. 2048X2048 maps, 4096X4096, I found one which was 16Mb in size, just for a rifle, which only ever takes up a few hundred pixels. Anything over 1024X1024 is a waste. Hats with 2048X2048 on the screen. textures, or ammo boxes with 2048X2048, these small items you can shrink the texture even further. 256X256 128X128, keep a back up an check them in 3D, if you can't tell then you did good.

You can shrink a 4096X4096 map down to 1024X1024 an you'll flip out at how much it looks like the 4096X4096, but the kicker is that it's now 1/8 the size thanks to DXT-1, yeah not 1/4 like you would think. They're tiny. Which really if you ask me only comes into play when you have idk 20 outcast BOS, around their base, with 100 or so raiders in the 4 quads on that part of the map. It's not any good if you lose detail though, so I tried it on a small scale first. After that I did it on my entire Data/textures folder. I kept backups just in case while doing it.


Something else was the normal maps, Anyone that's been in there has seen they are usually 1.3MB, or 4Mb when they are fresh out of the GIMP. From what I read, mipmaps are not so good in normals, but sometimes Paintnet will reduce them a bit anyway. If they already didn't have mipmaps. Which in some cases you can also resize the normal map to cut the size in half an still keep it's good points. You know the normal maps we use are just estimates anyway, they're not true normals unless someone crafted them. So yeah DXT-3 Explicit alpha or DXT-5 interpolated (estimated) alpha for the normals, brings the size down to 1MB then if you wanted to go further, most of the normals I see in the vanilla game are half size of the base texture.


Then After I got done with the whole texture folder, I went back to working on a new mesh I downloaded, which was awesome. But the freaking thing was almost 1Gb. So I thought hey let's do that nifscope magic on it like paintnet does with textures. Which was far more easy. All I had to do was stripify all shapes, then update all tangent spaces on each of the parts, then when you save in nifscope it auto sanatizes. All that took maybe 3 minutes an reduced the file size to around half or below. So now that super awesome mesh is at a performance size, an I didn't change anything as far as what it has or how it works in fallout. I even found Vanilla meshes which the same thing happened. I guess it's a nifscope thing.


I can't wait to finally get the texture sets, an shrink them down while keeping the detail. A nice drawing is hard to mess up, but if you can shrink it, then you can use it with 50 enclave commander NPC's you just spawned running around in complex scene. LuLZ, Try it out, shrink something an see if you can tell? If you can't then hey, let's add more stuff in there.

MMMincreasedincreasedHollyCowIncreasedSpawns.esp


An Example

I found a Glock pistol in my resource bin, everything in the real data folder is already shrunk.

The Glock is 5462Kb, which is 5.4Mb in it's raw form the creator uploaded it in. When I open it up I see that it's not very photorealistic, which tells me that I can put quite a bit of shrinkage on it, because it's fuzzy like the vanilla textures. If it were photorealistic I would take the time to just shrink it down one size then check, an maybe two if it was a 4096X4096, most times they are 2048X2048 which works well shrunk down just one to 1024X1024.


The process

1. Open your Data/textures folder, start at the top, go thru till you find a large file size, or large for the actual in game size, like a ammo box with a 2Mb files size or something, or something around 2Mb or 3Mb even 5Mb and more.

2. Open one of the large ones up with paintnet, hit Ctrl R which is resize, but first check that your Pixels per inch is set to 96 or higher, 96 is good though. You only have to set it once. Once that is set go ahead an check maintain aspect ratio (saves time)

3.Now cancel that, look at the texture, is it fuzzy or photorealistic, The Fuzzy stuff has very little risk of losing any detail while you also can shrink it down a whole lot. The photorealistic stuff, has more detail, so if you lose a little bit it's no big deal, but like I said, make a back up an do 3D previews with nifscope or ingame for important stuff.

4.Ctrl R resize, go ahead an cut the size down in half, make sure that best quality is set with supersampling, when it's done give it a over view that it looks the same.

5.Ctrl S Save, wait for the preview, you want Cluster fit checked (which is default) then Perceptual checked (also default I think) Then have Genarate mipmaps checked. At the top left is the DXT settings box, really all you ever need to use in this case is DXT-1 DXT-3 DXT-5. This is a base texture (defuse map) so all we really need is to check DXT-3 then check the preview when it updates switch it to DXT-1 and look for any thing that disapears in the preview, which would be the alpha channel (transparency) Most times there isn't any so you can just look for it like this until you can tell. You can cut a hole inside a texture, like to remove that part from the mesh, and DXT-1 will still render it invisible even without a alpha channel. Most of the alpha you run into in base textures (defuse map) you won't miss anyway. Go ahead and save it, then close the paintnet. You might have to refresh the folder to see the true size sometimes, but it should be way reduced in size.

6.open it back up, check it out, consider how large the item is, if it's hand sized then 128X128 to 256X256 will do, some things that small can be 512X512, if it's bigger than a hand then you want to use 256X256 to 512X512, or even 1024X1024 in some rare cases. This would also be a good time for a back up an quick 3D nifscope preview, but if it's still too big for the size item it is then Ctrl R, cut it in half (you really only have to type in or paste in the top part of the size the maintain ratio does the other (save time) wait for it to resize, check out the detail, Ctrl S then save it

7.Upon save always check that the quality is maintained, that you are on the proper DXT setting, that you have mipmaps generated, then save, check the size, it's tiny now. The trick is to only step down in half steps at the most, not 4096X4096 down to 1024X1024 in one resize, then save an reload each time.



Normal maps are a bit different

1.Save time, do all the normal maps in a folder at one time, after you have already done all the base texture (defuse map) in that folder, to avoid having to flit back an forth with different settings for each.

2. If the base texture (defuse map) is like 1024X1024 then you can get by with cutting the normal in half. Which you really don't need anything over 1024X1024 in a base texture anyway, unless it's the size of a building in game, or if the thing looks so fuzzy the only way to make it look good is to make it a 4096X4096, in which case it really doesn't make it look better, since it makes your fallout lag, which you could decide to keep that size because it's such a bad drawing, however that leaves more room to shrink the normal, so maybe a 2048X2048, then 1024X1024 normal or if it's a bad normal then 512X512, to make up the difference from the poopy texture.

3.Even if you decide to keep the normals original size, you still need to resave it with Paintnet. Sometimes because of the realtime .dds editing support paintnet has It will shrink the file size a bit. This is where you have to make good choices. Like most people won't save mipmaps in normals because sometimes it leads to wierd texture issues at distance, so it's better to have the system refresh it at distance by not saving them, Putting Mipmaps in a texture increases the size by about 35%, so it's really up to you, I don't save mipmaps in normals, just to avoid weird texture issues I've only heard rumors about. Next time I make a build maybe I can test if there is any performance gain either way.

4. DXT-3 is explicit alpha, where DXT-5 is interpolated (estimated) They both use the same compression ratio, so it's if you think maybe a estimate of the alpha might work out better, but you probably won't ever be able to tell in the kind of normal maps we make which are just rough estimates anyway. Some of them don't even have a alpha channel an you can DXT-1 them LMAO

5. Pick whatever an save it, then move on down the list, the tiny stuff like Blowflys, or corpse flys, things that move fast, ammo boxes, projectiles, all the things that really don't matter in the big picture are what you want to aim at, because you'll never notice them.

6. stuff like Raiders, BOS, or Outcast BOS, which are kind of in a grey area, you can spot treat those areas if you are having probems in a area inside the game world which has a lot of those types or even the complex scene stuff where 40 npcs fight 40 npcs. Taking their maps down from 2048X2048 to 1024X1024 you won't notice the difference, but in those areass fallout 3 will run way more smooth.

7. If you are into this kind of thing it's also a good way to get final aproval of the textures in your data folder, if there is a normal map which didn't work out so well, I'll make a new one, that looks like those high quality ones. For the most part I try to keep the original creators work as much as I can, though.

8. THE LAST STEP WOULD BE TO FORCE A DEFRAGMENT ON THE HARD DRIVE YOU JUST CHOPPED UP. After about 3Gb of textures which take about a day or two, the harddrive gets fragmented whereever you shrank a texture. Which over all the size is still huge, but from texture to texture it's now set up for running high performance in max settings with SLI 32XQ AA or 16 AF, while using mods like FOOK2 with DLCS an MMM increased increased, or feral ghoul rampage, yes I shrank most of Mart's great work, but, now I can turn up the globals for spawns from where it was if I wanted to. Then out in the wastes the fastmoving creatures don't lag the system or the AI. I was pretty easy on the texture too, if you were to go all out, an shrink the textures down to how they should be then, It would be ready for super crazy stuff.

Conclusion

If you take a look at most games the textures are small, but well drawn, then things like AA an AF make up the difference.


However the opposite is true too, you may not really want a lot of chaos, you would rather have super duper high res, and it's out there, you just can't run the max settings with the max spawns is all.


I guess I could have just turned down the texture size in the Game settings, but that goes against a gamers nature, plus I didn't trust the system to do it for me.

It was a great way to see what's actually in your mods, about 75% of the stuff in there from FOOK2 I had never even heard off. So it was kind of fun.

Next I'm going to try to see how much detail I can maintain inside the very large worldspace texture sets like for roads an rivet city, or megaton, shrink them down an run them with MMM, on max settings, in 1600X1200, It's going to be nice.