Jump to content

32 bit normal maps


Recommended Posts

I have no idea why ED keeps using 32 bit for normal maps. 10 of them in each A10C-II cockpit totaling 650 MB.

 

I changed them to 8 bit and there is absolutely no visual difference. But over 1.2GB VRAM difference. Along with other optimizations I've done to terrain and tree textures.

 

See them full size and the number I circled in red is VRAM allocated to DCS. Also notice lower overall GPU core usage.

 

Default 32 bit

Default.jpg

 

Optimized 8 bit

Optimized2.jpg

 

Download

If you want to test, I packaged it as OvGME compatible mod pack.

THIS PROBABLY WILL NOT PASS IC AND THIS IS ONLY FOR TESTING!!!

I didn't want to offer it as a mod because I'm sure ED will be actively updating A10C-II every patch cycle.

Again, I didn't even test for IC but texture mods usually fail.

 

Taz1004_A10C_II_Optimized TEST


Edited by Taz1004
  • Like 2
Link to post
Share on other sites
Thanks for the heads up mate, I don't have PS, any recommendation on what to use to down sample them cleanly?

 

I updated the first post with download link.

I did not test for IC but texture mods almost always fail so this is only for testing.

 

I didn't want to offer this as mod since ED probably will be updating A10C-II every patch. And the ideal goal is to get ED to acknowledge these and make optimizations so it doesn't effect IC.

 

I only have A10C and Ka-50 so I can't look but I'm sure if you guys look into other modules like F-16 or FA-18, I bet you'll find more 32bit normal maps. Supercarrier I'm sure.

 

32 normal maps serve absolutely no purpose than eat up your resources. It's basically a bump map. 8 bit provides you with 256 levels of bump. 32 bit give you 16777216 layers of bump. On things like rivets and bevels.


Edited by Taz1004
Link to post
Share on other sites

Nice job !

Unfortunately DCS requires more and more resources so good optimization is key (omission of unnecessary/not visible texture details)

 

I know few people will be whining (how DDS is the best/suitable for DCS) but some of my friends do a lot of "downgrade" of textures. non-alpha-DDS to JPG:

High-res JPGs without noticeable visual changes but less disk+memory usage and faster loading time. Strange, but textures without mipmaps looks better usually as well. I am not sure if it's DCS or the GFX card releated but with mipmap usage the lower-resolution mipmap textures will be on/switches onto the polygons too early / too close to the camera - what is disappointing.

 

for example 4K/8K non-alpha DDS to high-quality-same-resolution 4K or 8K conversion to JPG (F-16, F-14, JF-17 and huge map texture files) brings significant performance increase. :idea:


Edited by NRG-Vampire

[sIGPIC][/sIGPIC]

Link to post
Share on other sites

well, there is difference between bumpmaps and normalmaps. bumpmaps need only one channel because they describe merely displacement. normalmaps describe surface normal vectors, which are 3D vectors, for lighting and thus need 3 channels.

:joystick:

CPU: AMD Ryzen 5 1600X

GPU: AMD RX 580

Link to post
Share on other sites

good find. i have only 4gb of vram and notice a huge drop in performance between the original a-10c and the upgrade.

i turned down some graphics options and that helped, but it's not ideal.

 

i doubt anyone could notice the difference between 24 and 32 bit normals, so this seems to me like a ridiculous waste of rescources.

i hope these are just an oversight and will get patched.

 

taz, maybe you should open dedicated threads in the general bug section for your terrain and tree findings, because for me it's seems like a bug - someone just having forgotten to compress the WIP textures before putting them in the game...

for people with less than 8gb of vram those missing compression can mean the difference between playable and stutterfest.


Edited by twistking

My personal wishlist after 2 years with dcs: https://forums.eagle.ru/showthread.php?t=216873

Link to post
Share on other sites

This is an awesome find, and such an easy optimization an I agree the changes would be imperceptible. This really should be considered a dcs bug IMO. One script to resample all these and most players in limited hardware would gain more usable vram.

Forums Signature V3_500x100_20210118.png

Custom Pit 476 Recruiting

 

 

i7-8700K, 16 GB DDR4 3600, Gigabyte Aorus Gaming 7, Gigabyte RTX 2080 Ti, 500GB Samsung Evo SSD+2x750GB RAID-0, TrackIR 5 /w clip, CRG9 49” Curved Ultrawide Flight Display+15" Touchscreen+17" Gauges display, Thrustmaster Warthog+7.5cm, Tablet CDU, Saitek Pro Combat Pedals, Butt Kicker and pneumatic G-Seat

 

Link to post
Share on other sites
well, there is difference between bumpmaps and normalmaps. bumpmaps need only one channel because they describe merely displacement. normalmaps describe surface normal vectors, which are 3D vectors, for lighting and thus need 3 channels.

 

Of course I know the difference. I called it bump map for simplicity sake. I had exactly same post regarding 32 bit normal maps on Caucasus. And some people didn't understand what normal maps were.

 

https://forums.eagle.ru/showthread.php?t=282743

 

Normal maps actually are basically glorified bump map. It used to be greyscale map that only extruded one direction. Someone clever figured out there're 3 channels to image files to simulate the coordinate system. So they stored offset information of uvw in RGB channels of image files.

 

 

taz, maybe you should open dedicated threads in the general bug section for your terrain and tree findings, because for me it's seems like a bug - someone just having forgotten to compress the WIP textures before putting them in the game...

 

The post I made about 32 bit normal maps on Caucasus above went pretty much unnoticed. These things get optimized if more players request them to. Me keep reporting wont do anything. For example, I reported this bug about trees too but didn't get any acknowledgement from ED.

 

https://forums.eagle.ru/showpost.php?p=4443078&postcount=40


Edited by Taz1004
Link to post
Share on other sites
i doubt anyone could notice the difference between 24 and 32 bit normals

i dont know whats in the fourth channel, but even if its unused it doesnt matter really. GPUs usually internally access image data as 32bit per pixel for performance reasons (unlike 24bit, its a power of two which is practical for computating pixel offsets and such). truly 24bit textures can decrease performance or even not be supported by the GPU. for example, some opengl implementations convert 24bit textures into 32bit automatically under the hood for these reasons.

 

24bit textures are ugly from technical viewpoint.

:joystick:

CPU: AMD Ryzen 5 1600X

GPU: AMD RX 580

Link to post
Share on other sites

Why does anything in DCS be higher than 8-bit files? Most displays players has are 8-bit capable only, and 10-bit is even today fairly less capable.

Even today a most used display resolution is Full HD, a 1920x1080.

 

Sure it helps to have a 32-bit colors for gradients, but well done 8-bit is not so bad compared to higher. But that is mainly for gradients like a skies and sun, but not so much for the aircrafts itself.

 

Need to try out this mod as it is interesting idea to downscale all to 8-bit that is just possible be used as such.

i7-8700k, 32GB 2666Mhz DDR4, 2x 2080S SLI 8GB, Oculus Rift S.

i7-8700k, 16GB 2666Mhz DDR4, 1080Ti 11GB, 27" 4K, 65" HDR 4K.

Link to post
Share on other sites
Why does anything in DCS be higher than 8-bit files? Most displays players has are 8-bit capable only, and 10-bit is even today fairly less capable.

Even today a most used display resolution is Full HD, a 1920x1080.

 

Sure it helps to have a 32-bit colors for gradients, but well done 8-bit is not so bad compared to higher. But that is mainly for gradients like a skies and sun, but not so much for the aircrafts itself.

 

Need to try out this mod as it is interesting idea to downscale all to 8-bit that is just possible be used as such.

4th image in the thread says 32bpp, which would be 32 bits per pixel, not 32 bit per channel. 4 channels with 8 bits per channel = 32 bits per pixel.

:joystick:

CPU: AMD Ryzen 5 1600X

GPU: AMD RX 580

Link to post
Share on other sites
Why does anything in DCS be higher than 8-bit files? Most displays players has are 8-bit capable only, and 10-bit is even today fairly less capable.

Even today a most used display resolution is Full HD, a 1920x1080.

 

Sure it helps to have a 32-bit colors for gradients, but well done 8-bit is not so bad compared to higher. But that is mainly for gradients like a skies and sun, but not so much for the aircrafts itself.

 

Need to try out this mod as it is interesting idea to downscale all to 8-bit that is just possible be used as such.

 

Exactly. And to me, the texture size is overkill too. We're talking about 4k texture... on 4k monitor.

 

4k texture for diffuse might improve quality but normal maps are just supplement to diffuse texture. For rivets, bevels on gauge dials, grooves on knobs... 4k normal maps for those is just overkill.

The difference in size grows exponentially with each power of two. It's minor difference between 256x256 map and 512x512 map. But difference between 2048x2048 and 4096x4096 is huge.


Edited by Taz1004
Link to post
Share on other sites
i dont know whats in the fourth channel, but even if its unused it doesnt matter really. GPUs usually internally access image data as 32bit per pixel for performance reasons (unlike 24bit, its a power of two which is practical for computating pixel offsets and such). truly 24bit textures can decrease performance or even not be supported by the GPU. for example, some opengl implementations convert 24bit textures into 32bit automatically under the hood for these reasons.

 

24bit textures are ugly from technical viewpoint.

 

thanks for the heads up. i was not aware of that.

 

however taz's point is still valid: 600mb of normal maps is madness. supersizing the albedo maps may show on very high resolution displays, but normal maps not so much.

 

please, ED have a look at that. or fix VRram management, or -even better- do both!

My personal wishlist after 2 years with dcs: https://forums.eagle.ru/showthread.php?t=216873

Link to post
Share on other sites

Yep. :thumbup:

 

I hope this time ED pays attention, it's a well presented report on a real issue.

Last time that something similar to this was discussed it was moved (and forgotten) to the "Wishlist" forums:

https://forums.eagle.ru/showthread.php?t=283674

 

The normal/bump mask overkill sizes, also unnecessary in so many Diffuse textures, and also DDS textures saved as DXT5 when DXT1 would have been correct (i.e, using transparency settings when there's none in use), are on the verge of absurd in a game/sim title that is already extremely resource hungry.

 

There's a lot of neglecting in regards to DDS formats, sizes and (as Daz clearly shows here) also bit-depth in normal maps.

I don't even think it's a matter of discussion, as changing this will bring only benefits for everyone, there are no downsides.


Edited by LucShep

1934486534_LMtransparentDCSicons_hs_shdw-5_75pc.png.9c8c611c4d38c056af222a2071df6f01.png:pilotfly:

Spoiler

Win10 Pro x64 | Intel i7 10700KF (all core OC 5.0GHz) | 32GB DDR4 (3466MHz CL16) | RX 5700XT 8GB | 256GB(OS) + 500GB SSDs | 1TB + 3TB HDDs | 650W PSU (Seasonic 80+Gold)
32'' 1080P 75Hz (IPS) | M-Audio USB + Samson SR850 | X52 Pro + TrackHat (w/OpenTrack)

 

Link to post
Share on other sites

+1

ED, please. Across the board, including 3rd party developers.

- Jack of many DCS modules, master of none.

- Personal wishlist: F-15A, F-4S Phantom II, JAS 39A Gripen, SAAB 35 Draken, F-104 Starfighter, Panavia Tornado IDS.

 

| MSI Z87-G45 Gaming | i5-4670K @ 4.3Ghz | 16Gb DDR3 1600 | Asus GTX 1070 Strix OC | Samsung 850 Evo 250 & 500Gb | 40" Sony FullHD | Oculus Rift CV1 | Thrustmaster Warthog Stick (19.5cm extension) & Throttle | MFG Crosswind | Windows 7-64 |

Link to post
Share on other sites
Not bit related, but do you know how I can find and edit the normal textures? All the normals I find are either pinkish or or greenish.

 

Cockpit:

Eagle Dynamics\DCS World\Mods\aircraft\A-10C_2\Cockpit\Textures

 

Exterior:

Eagle Dynamics\DCS World\CoreMods\aircraft\A-10\Textures

 

 

Exterior normals are greenish because blue channel is black for some reason, while standard is to leave it white. I'm not sure how dcs engine handles blue channel, but it doesn't really matter.

 

Anyway, I agree with OP, lot of DCS textures contain additional channel of data that serves no purpose no matter how it's being compressed, and while we can fix it locally, IC makes life more difficult. Even worse, dds alpha channel cannot be sampled into rgb compression, it require its own set of data, so you end up with double bpp.

 

And please, please, please, do not ever use .jpg for textures.


Edited by =4c=Nikola

Do not expect fairness.

The times of chivalry and fair competition are long gone.

Link to post
Share on other sites
Not bit related, but do you know how I can find and edit the normal textures? All the normals I find are either pinkish or or greenish.

 

You can use Nvidia's Texture Tools. Standalone version.

https://developer.nvidia.com/nvidia-texture-tools-exporter

 

 

Another option is Microsoft Visual Studio. You can get the Community version for free altho it'll take quite a bit of disk space.

https://visualstudio.microsoft.com/vs/community/

 

You need to follow this install guide and install correct components.

https://docs.microsoft.com/en-us/visualstudio/install/install-visual-studio?view=vs-2019

 

I believe components required for texture editing are:

.NET desktop development and Game development with C++

 

 

You can do resizing and resampling just within Visual Studio. It does have editing but very rudimentary.

You can open texture, save as uncompressed image format such as TGA. Then edit from program like Gimp. Reimport to Visual Studio and save as dds file.

 

Keep in mind BC7 compression is newest and most efficient. But I noticed some of DCS texture require them to be BC3. Usually older textures like Caucasus ground.

Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
  • Recently Browsing   0 members

    No registered users viewing this page.

×
×
  • Create New...