Taz1004 Posted October 17, 2020 Posted October 17, 2020 (edited) 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 Optimized 8 bit 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 October 17, 2020 by Taz1004 6 3 Better Smoke - Better Trees Caucasus - Better Trees Syria - Better Trees Mariana - Clear Canopy Glass
Taz1004 Posted October 17, 2020 Author Posted October 17, 2020 And these are the 32 bit normal maps. This is just on A10C-II. I'm sure there are more. I found some in the ground texture which I fixed for myself too. 1 1 Better Smoke - Better Trees Caucasus - Better Trees Syria - Better Trees Mariana - Clear Canopy Glass
Vanguard Posted October 17, 2020 Posted October 17, 2020 Thanks for the heads up mate, I don't have PS, any recommendation on what to use to down sample them cleanly?
Wrench Posted October 17, 2020 Posted October 17, 2020 Does changing the normalmaps for otbher things I saw terrais mentioned above) pass IC? Ifso,I might feel a modpack coming on. Carrier Script.
Taz1004 Posted October 17, 2020 Author Posted October 17, 2020 (edited) 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 October 17, 2020 by Taz1004 3 Better Smoke - Better Trees Caucasus - Better Trees Syria - Better Trees Mariana - Clear Canopy Glass
Hive Posted October 17, 2020 Posted October 17, 2020 Very interesting! Hope ED will have a look at it and consider a change. Perhaps something for the wishlist then. Thank you for your work! 1
NRG-Vampire Posted October 17, 2020 Posted October 17, 2020 (edited) 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 October 17, 2020 by NRG-Vampire 1
dorianR666 Posted October 17, 2020 Posted October 17, 2020 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. CPU: AMD Ryzen 5 1600X GPU: AMD RX 580
NRG-Vampire Posted October 17, 2020 Posted October 17, 2020 (edited) DCS does not use bumpmaps. Those are all normal-maps. Bumpmaps are greyish. Normalmaps are purple-ish or ocher-yellowish if it's inverted. Edited October 17, 2020 by NRG-Vampire
twistking Posted October 17, 2020 Posted October 17, 2020 (edited) 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 October 17, 2020 by twistking My improved* wishlist after a decade with DCS *now with 17% more wishes compared to the original
Puma Posted October 17, 2020 Posted October 17, 2020 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. Custom Pit 476 Recruiting i9-12900KF, 32 GB DDR5, Gigabyte Aorus Z690 Master, Gigabyte RTX 2080 Ti, 1TB Sabrent Roket 4+ 2x750GB RAID-0, TrackIR 5 /w clip, CRG9 49” Curved Ultrawide Flight Display+15" Touchscreen+17" Gauges display, Thrustmaster Warthog+7.5cm, Saitek Pro Combat Pedals, Streamdeck, Butt Kicker and pneumatic G-Seat
Taz1004 Posted October 17, 2020 Author Posted October 17, 2020 (edited) 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 October 17, 2020 by Taz1004 Better Smoke - Better Trees Caucasus - Better Trees Syria - Better Trees Mariana - Clear Canopy Glass
dorianR666 Posted October 17, 2020 Posted October 17, 2020 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. CPU: AMD Ryzen 5 1600X GPU: AMD RX 580
Fri13 Posted October 17, 2020 Posted October 17, 2020 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.
dorianR666 Posted October 17, 2020 Posted October 17, 2020 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. CPU: AMD Ryzen 5 1600X GPU: AMD RX 580
Taz1004 Posted October 17, 2020 Author Posted October 17, 2020 (edited) 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 October 17, 2020 by Taz1004 1 Better Smoke - Better Trees Caucasus - Better Trees Syria - Better Trees Mariana - Clear Canopy Glass
twistking Posted October 17, 2020 Posted October 17, 2020 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! 1 My improved* wishlist after a decade with DCS *now with 17% more wishes compared to the original
LucShep Posted October 17, 2020 Posted October 17, 2020 (edited) 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 October 18, 2020 by LucShep CGTC - Caucasus retexture | A-10A cockpit retexture | Shadows Reduced Impact | DCS 2.5.6 - a lighter alternative Spoiler Win10 Pro x64 | Intel i7 12700K (OC@ 5.1/5.0p + 4.0e) | 64GB DDR4 (OC@ 3700 CL17 Crucial Ballistix) | RTX 3090 24GB EVGA FTW3 Ultra | 2TB NVMe (MP600 Pro XT) + 500GB SSD (WD Blue) + 3TB HDD (Toshiba P300) + 1TB HDD (WD Blue) | Corsair RMX 850W | Asus Z690 TUF+ D4 | TR PA120SE | Fractal Meshify-C | UAD Volt1 + Sennheiser HD-599SE | 7x USB 3.0 Hub | 50'' 4K Philips PUS7608 UHD TV + Head Tracking | HP Reverb G1 Pro (VR) | TM Warthog + Logitech X56
Knock-Knock Posted October 18, 2020 Posted October 18, 2020 +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. | Windows 11 | i5-12400 | 64Gb DDR4 | RTX 3080 | 2x M.2 | 27" 1440p | Rift CV1 | Thrustmaster Warthog HOTAS | MFG Crosswind pedals |
EasyEB Posted October 18, 2020 Posted October 18, 2020 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.
Vanguard Posted October 18, 2020 Posted October 18, 2020 I just downloaded paint.net for that reason alone. Photoshop is what most peeps use but it's $$$. https://www.getpaint.net/download.html Any other suggestions welcome, but pain.net actually supports all compression formats.
=4c=Nikola Posted October 18, 2020 Posted October 18, 2020 (edited) 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 October 18, 2020 by =4c=Nikola Do not expect fairness. The times of chivalry and fair competition are long gone.
Taz1004 Posted October 18, 2020 Author Posted October 18, 2020 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. Better Smoke - Better Trees Caucasus - Better Trees Syria - Better Trees Mariana - Clear Canopy Glass
Taz1004 Posted October 18, 2020 Author Posted October 18, 2020 Also, I believe GIMP has DDS plugin too but I never used it so don't know how well it works. Better Smoke - Better Trees Caucasus - Better Trees Syria - Better Trees Mariana - Clear Canopy Glass
Recommended Posts