Jump to content

Normal files should not be compressed? BC7?


antstubell

Recommended Posts

Not familiar with Gimp so I can't answer that part of your question.

 

Normal files can be compressed, but like any other image file they can show compression artifacts. Personally I leave them uncompressed for small things where the file size is not much of an issue; but when you're doing 4k normal files (really that's overkill in most cases) your mod will end up being massive if you don't compress them. If you're prepping a mod to post I suggest giving 2-3 options such as 2K/2K, 4K/2K, and 4k/4K (defused/normal). You could even do a 4K/4K-Uncompressed BUT I highly suggest you do not include that last option in a FOMOD as it is something only screen archers (people who go after ultra high end screenshots) use and typically is just to much of a drain on most peoples rigs to be a playable format.

 

ALWAYS generate new mipmaps when you change an image.

 

Cheers.

Skia

Link to comment
Share on other sites

GIMP still supports the old DDS which includes DXT5 for normal maps

 

Any dds file is a lossy (ie it loses a little detail each time it is saved). Ideally you need a good source image, only work on it and save any intermediary work steps in a lossless format like png.

Then when it comes to finally saving it as a dds file you have only lost the minimum amount of detail on that one compression to DXTn

 

Generally most normal maps which will never be so close to notice such minimal loss will be fine saved as DXT5

 

The only normal maps to be a bit more finicky with are Face and Body normals, which people like to screenshot up close and personal (so in game you get the largest resolution mipmap on display very close to the in game camera, and any minor loss of detail becomes more noticeable).

 

If its not a face or body texture, most other textures will hardly ever be so close as to see any artifacts caused by DXTn compression.

 

Back when Skyrim (original Skyrim LE, not Special Edition) first came out, the original face normal maps were awful, very blocky looking causing square pointy bits particularly noticeable on the nose of the NPCs. Any further work on them made them worse. So various body mod authors went to work on recreating some higher quality source normals without the artifacts. They also chose to save face and body normals without compression so that they would not lose any quality for best in game presentation ..

 

.. The cost of having uncompressed normals is VRAM / System ram use. If they were all uncompressed the game would flood peoples video cards and cause a bottle neck, where that video card would ordinarily be in spec for the game.

 

 

TL:DR - DTX5 generally for normal maps, saving them uncompressed in a few cases is okay, but don't overdo it.

 

 

Reference using BC7 - BC7 is an excellent compression format with barely any degradation from compression. You can work on a source texture and save any stages of work as lossless format as previously mentioned - Then load up the png in the most recent version of Paint.Net, and save it out as BC7 with mipmaps as your final step. See this topic https://www.afkmods.com/index.php?/topic/5535-paintnet-now-supports-all-dds-formats-including-bc7-linear-etc/

 

Reference generating mipmaps = Yes, always do this (unless its a UI texture which does not need them - Rarely, some do)

See also this topic https://www.afkmods.com/index.php?/topic/4283-all-about-textures/

Edited by Guest
Link to comment
Share on other sites

I am seeing posts that Gimp does not have a plugin for BC7. Seems Paint is the option to use as you linked to.

 

Just saved a texture, non-normal, with no compression and generate mipmaps. It went from 2.66mb to 21.33. Holy Moley.

Edited by antstubell
Link to comment
Share on other sites

Yep, GIMP is great for working on textures, and the newest version of GIMP does not need any plugins for all the older DDS formats, it now supports them natively - But it does not support the latest DirectXTex formats BC6H and BC7.

 

Until GIMPs DDS support becomes more developed to include all new formats, for now Paint.Net just to save your work as a final BC7 dds file is the easiest route.

 

PS if you want to find an original textures format - Open it with RenderDoc, see also this post https://www.afkmods.com/index.php?/topic/5535-paintnet-now-supports-all-dds-formats-including-bc7-linear-etc/&do=findComment&comment=175993

 

RenderDoc can show you the format of a texture loaded, how many mipmaps it has, and you can even select individual channels to view. I use it just to get those bits of information so I know what formats etc to save the eventual finished work

Link to comment
Share on other sites

Forgot to mention - Photoshop is the best solution, along with installing the Intel Texture Works plugin ..

 

https://software.intel.com/en-us/articles/intel-texture-works-plugin

 

 

I am pretty sure you are using GIMP though because like other mere morsels Photoshop is not affordable just for a hobby

 

But anyway ;

 

Thought I would point out that link to the plugin because on that page it gives an example screenshot of various textures before and after BC7 compression. As you can see it is pretty good and without zooming in many many times you will be hard pushed to see any artifacting differences.

 

Also note : If you save out images from Paint.Net, use "Save As" from the file menu, and among the options for DDS you will find a "Compression Mode" option - For BC7 Choose Slow - Slow == BC7 Fine (as shown in the comparison screens on the Intel Texture Works plugin site)

 

 

Edit : And lastly, BC6 and BC7 will only work in DX11+ Games - If your textures need to be backwards compatible with older games, then use as previously mentioned the older dds formats .. DXT5 for normals.

Edited by Guest
Link to comment
Share on other sites

"ALWAYS generate new mipmaps when you change an image."

Does this also apply to completely newly made images?

 

Yep, basically every texture (and normal) needs to have a mipmap.

 

I am seeing posts that Gimp does not have a plugin for BC7. Seems Paint is the option to use as you linked to.

 

Just saved a texture, non-normal, with no compression and generate mipmaps. It went from 2.66mb to 21.33. Holy Moley.

 

Yep, it will do that... Here, check out this wiki article if you need more info to help you understand what exactly mip maps are and what they do. https://en.wikipedia.org/wiki/Mipmap

Link to comment
Share on other sites

  • Recently Browsing   0 members

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