Jump to content

32 bpc Textures


Recommended Posts

This may be shelved in Wishlist like last time but I really believe this needs to be considered a bug.  If an unnecessary line of code costs 10% of VRAM, that'd be considered a bug.  I don't see how this is different.

I mentioned this in another thread looong time ago and looks like nothing has changed.  In fact, has gotten worse it seems.  I optimize most of the textures and below is comparison between my optimized textures and default.  VRAM usage is at bottom right corner.  There is absolutely zero quality difference.  Different shade of glass tint is just my personal preference.

 

Black Shark 3 Syria Shooting Range Instant Mission

BS3.gif

 

A10C-2 Operation Piercing Fury Mission 1

A10C-2.gif

 

FA-18 Supercarrier PG Cold Start

FA-18.gif

 

As you can see, newer the module, bigger benefit there are from optimization.  I don't have Apache but its textures look huge.

All I did to optimize is reduce all RoughMet and Normal maps from 4K to 2K.  No change to Diffuse maps.  And converted ALL 32bpc textures to 8bpc.  And all FLIR textures, I downsized to 1K.  I'm not sure why something you see in small MFD screen needs to be 4K textures.


Edited by Taz1004
  • Like 10
  • Thanks 4
Link to comment
Share on other sites

On 3/21/2023 at 3:51 AM, Flappie said:

Hi @Taz1004. Many thanks for this thread. I'll report this solution to devs.

Can you please give us a link to said mods so devs can see the difference right away?

It's for my own as it's too large to share.  Currently over 4GB.  Plus, I can only optimize the modules I own and I don't own everything.  Below is one of the zip file from the mod as an example of what I changed.

Removed

Original is 335MB with 32bpc textures.  My optimized version is 105MB.  File exists in /CoreMods/tech/TechWeaponPack/Textures/


Edited by Taz1004
  • Like 1
Link to comment
Share on other sites

On 3/21/2023 at 4:03 AM, lefuneste01 said:

Could you please post a short tutorial to do it with gimp ?

I don't use gimp but anyone can do it with MS Visual Studio Community which is free.

  1. Unzip the texture file first.
  2. Sort by file size.
  3. Start with the largest file.  Roughmet files should say "Roughmet" and Normal files should say "Normal" or "_N" or "Nrm" or "NM" so you can also search by name.
  4. I don't optimize diffuse or color textures (unless they're really unreasonable like 4K texture for pilot's face) but you can if you're really starving for VRAM.  But this would reduce image quality.
  5. I usually make Roughmet and Normals half (1/4 actually) of diffuse.  So if diffuse is 4096x4096, I reduce Roughmet and Normals to 2048x2048.  (Refer to image below).  If diffuse is 1024, I make Roughmet and Normal 512 etc.  All resolution must be power of two (512, 1024, 2048... etc)
  6. If it's 32 bits per pixel as in the image below, then change the format to "BC3_UNORM" or "BC7_UNORM".  It should automatically convert to 8bpc
  7. If the texture is for ground unit, search for FLIR and reduce them to 1024x1024.  There's also separate FLIR.zip file in /Bazar/World/textures/
  8. Then just save, re-zip the files and make sure zip file name matches original.
  9. Make it into a mod and install using mod manager.

Roughmet are for defining surface finish.  Whether it's glossy, matte, metallic, etc.  They really don't need to be 4K nor 32bpc.

Normals are for bumps.  Usually used for rivets, bevels and grooves.  Imagine 8bpc as 3D printer that prints the rivet in 256 layers.  And 32bpc would be printing the rivet with 16 million layers.

 

Original (65MB)

64bpc.jpg

 

Optimized (5MB)

8bpc.jpg

 

Currently, I optimized texture files in:

  1. /Mods/aircraft/(aircraft name)/Cockpit/Textures/
  2. /Bazar/World/textures/
  3. /CoreMods/aircraft/(aircraft name)/Textures/
  4. /CoreMods/tech/TechWeaponPack/Textures/
  5. /CoreMods/tech/USS_Nimitz/Textures/

Starting with the largest ones.


Edited by Taz1004
  • Like 5
  • Thanks 3
Link to comment
Share on other sites

  • Taz1004 changed the title to 32 bpc Textures

Hello all,

I just spent some time writing a batch file for texconv.exe (https://github.com/Microsoft/DirectXTex/wiki/Texconv) to try to streamline the process. The thing that struck me most during this is that there seem to be some absolutely huge normal maps and roughmet textures, some as large as 80+ MB. The other thing that I noticed was the apparent lack of standardization of the texture sizes and names. some normal maps have "normal" in their name while others have "nrm" or "NM" in there names. I understand they were most likely created at different times and by different developers. However I think it might be worth it for someone to sit down for a day or two to go through these textures and standardize them.

I cannot tell any difference between a 4096x4096 32 bit roughtmet or normal map and a 2048x2048 DXT5 file does the job just as well, often cutting total size of texture for the models in half at times.

 

Just my 2 cents

  • Like 7
  • Thanks 1
Link to comment
Share on other sites

On 3/21/2023 at 10:59 AM, Taz1004 said:

It's for my own as it's too large to share.  Currently over 4GB.  Plus, I can only optimize the modules I own and I don't own everything.  Below is one of the zip file from the mod as an example of what I changed.

Optimized VAB_Mephisto.zip

Original is 335MB with 32bpc textures.  My optimized version is 105MB.  File exists in /CoreMods/tech/TechWeaponPack/Textures/

 

there  must be a way to automatizing the process without needing to constantly uploading the edited files. lemme search Taz. 

Ah, also; You, a valuable modder of the community, should've been given access to all modules.  As you will add more to the community with those. I just wanted to share my opinion.. 

  • Like 3
Link to comment
Share on other sites

thanks @Taz1004  you're doing great work. here's hoping that this thread wakes up the responsible devs: 5/5 stars!

texture sizes are ridiculously oversized. i bet that you could squeeze them even more before quality would degrade to a point where it was really notable.

  • Like 1
Link to comment
Share on other sites

I've manually resized all of the cockpit and external textures for the F16 using your method. I'm eager to test what difference it makes, in terms of load, quality and / or performance. Great find! 

  • Like 2

AMD Ryzen 7 5800X3D, MSI X570 Tomahawk, 32GB G.Skill F4-3600C15D @ 3866C14, ASRock Taichi 7900XTX, HP Reverb G2, VPC WarBRD-D & Thrustmaster F16 Viper & F18 Super Hornet, Thrustmaster Warthog Throttle.

Link to comment
Share on other sites

  • 2 weeks later...

I tried to convert textures for the AH64 (my god they provide a 65 GB normal texture for..the seat !) and had this issue (see picture below) So I think the file ah-64d_cpt_glass_refl_RoughMet.dds should not be converted...

The command I used : texconv.exe -flist file_list.txt -o convert -w 2048 -h 2048 -f BC3_UNORM

I put all _*n* and *Roughmet* file names into file_list.txt, for size greater than 2048x20248.

I need to restore the ah-64d_cpt_glass_refl_RoughMet.dds and check in VR.

Texture folder size divided by 3....

after:

Screen_230407_133537.jpg

Before

Screen_230407_133700.jpg


Edited by lefuneste01
  • Thanks 1

P8700K @4.8 GHz, 3080ti, 32 GB RAM, HP reverb Pro.

I spend my time making 3dmigoto VR mods for BoS and DCS instead of flying, see https://www.patreon.com/lefuneste

Link to comment
Share on other sites

On 4/7/2023 at 7:43 AM, lefuneste01 said:

I tried to convert textures for the AH64 (my god they provide a 65 GB normal texture for..the seat !) and had this issue (see picture below) So I think the file ah-64d_cpt_glass_refl_RoughMet.dds should not be converted...

The command I used : texconv.exe -flist file_list.txt -o convert -w 2048 -h 2048 -f BC3_UNORM

I put all _*n* and *Roughmet* file names into file_list.txt, for size greater than 2048x20248.

I need to restore the ah-64d_cpt_glass_refl_RoughMet.dds and check in VR.

Texture folder size divided by 3....

after:

Screen_230407_133537.jpg

Before

Screen_230407_133700.jpg

 

 

Yea, I try not to touch textures for complex shaders.  Damage map being another one.  You'll find out which ones they are as you do more as you're already finding out.

And whenever I see regular image files like tga, jpg, png, bmp, I do try to convert them to dds.  Those regular image files do not support mips and they shouldn't be used for diffuse.  Converting them usually work as long as you use same file name.  And you have to create mip levels using tools menu in Visual Studio.


Edited by Taz1004
Link to comment
Share on other sites

On 4/7/2023 at 1:45 AM, Taz1004 said:

Whoever did these South Carolina National Guard Liveries for Apache had them optimized exactly the way I would.  So there is someone at ED who agrees with me.

They weren't done by ED, but by @static_actual as part of the AH-64D livery competition if I recall correctly.

  • Thanks 1

Everybody said: "That's impossible!" Then someone came along who didn't know that and just did it.

Flying the A-10C for the 107th Joint Aviation Squadron

Developing and creating missions for Through The Inferno

Join the TTI Discord

Link to comment
Share on other sites

On 4/6/2023 at 7:45 PM, Taz1004 said:

Whoever did these South Carolina National Guard Liveries for Apache had them optimized exactly the way I would.  So there is someone at ED who agrees with me.

 

image.jpeg

@Recoil16 is correct, those are my work, though that was on my old forums account. If you take a look at the description.luas, though, you will see a comment labeling me the maker.

I do wonder why your install seems to show the old naming convention; the naming conventions were changed when I updated them to remove the new default patches (which covered up my custom patch work). I've attached a screenshot showing the updated folders.

If you're talking about the heavy use of shared files, I am a bit of a sucker for those, and you'll see those on pretty much all of my skinpacks (including my 605 sqn one from the recent Mosquito competition)null; if you're talking about the use of 2k roughmets, that was actually only so I could keep it under 300mb for the user files upload limit while using the higher quality BC7 compression format, though it certainly does have the added benefits you've already mentioned here.

image.png

  • Like 2
Link to comment
Share on other sites

On 3/26/2023 at 6:58 PM, Flappie said:

This was reported internally for a number of aircraft. I added this excellent thread to one of the internal reports. Thanks @Taz1004.

 Just by remote chance somebody internally at ED insists that there is benefit to 32bpp normal maps, referencing videos like below, I'd like to make one things clear.

 

One thing common about these videos showing benefit of 32bpp normal maps is that they almost always show it very close up on highly reflective surfaces like a chrome or mirror object.  Because that is the only way to see the difference.  On real world game scenarios like DCS where nearly everything is matte and weathered, you will not be able to tell the difference between 8bpp and 32bpp.

Below is another video that starts out by showing the benefits of 32bpp normal maps on chrome material but towards the end at 11:49, he shows 8bpp is just as good for matte materials.  And as he said in 12:22, if you bake in 32bpp out of 3D software and then reduce it to 8bpp in Photoshop, it works well even on chrome materials.  This may be viewed as another step in the pipeline but all this can be automated with batch, command line, and even scripting.

 

And if somebody does make a chrome plane, it still should be 16bpp as the video shows.  Not 32bpp.


Edited by Taz1004
  • Like 5
Link to comment
Share on other sites

  • 3 weeks later...

Hello Taz and lefuneste,

I can see in VR multiplayer session that some plane generate ghosting whereas other plane are clean

By exemple, when in VR formation flying in my cockpit, F-86 is ghosting whereas SU27 or Harrier are not ghosting at all.
In this session, Su27 and F-86 and me were flying together behind a Harrier formation flying, i just had to turn my head left or right to see each different plane

So i suspect F-86 textures to be one of source of this ghosting problem ( by looking in the f86 folder, textures are very huge ... )

My Question :

Could it be a good test that a I try to optimize F-86 textures, as you decribed,  and check if the VR ghosting problem is solved or not ?
The multiplayer server doesn't need 'pure client' ( IC check )


 


Edited by fab.13
Link to comment
Share on other sites

  • 6 months later...

Thank you Taz 😉   yes ED Needs to incorporate these into the game hopefully having Taz blessing..

 

I had a question most of those files in the Textures folder are zipped, would the game load quicker if I had them all unzipped? I know it would take up more space on the Drive that is not my concern.. I may test it if it is even possible..

 

Well I unzipped all those texture files and it seems to take longer to load the mission after I hit fly?? Not sure if it helped or got worse..


Edited by The_Nephilim
  • Like 1

ASRock Z590 Phantom Gaming 4/AC / Intel i7 10700K @ 5.1Ghz / Noctua DHS-14 Heatsinkw/Fan /  Samsung 970plus m.2 1TB  /  eVGA FTW3 2080Ti /  RipJaws - 64GB RAM @3200  /  SoundBlaster Z  / Reverb G2 VR /  ThrustMaster HOTAS Cougar & MFD's / Buttkicker Gamer 2

Link to comment
Share on other sites

  • Recently Browsing   0 members

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