Channel Packed Textures Compression

I’ve been using channel packed textures for years now. AO in the Red, Roughness in the Green and Metal or Curvature in the Blue. It’s a great way to improve performance and reduce instal size.

I use the Masks compression setting but one thing that has been bugging me recently is the amount of compression in both UE4.27 and 5.1 seems to be destroying the quality of the individual channels, especially on 4K textures. It makes huge pixelated blocks especially in the lower half of the 0-1 range. This happens even when lossy compression amount is set to no lossy compression. Infact that and compression quality drop-down seem to have no affect on the compression at all as the all result in the same resouce size for the image.

Here’s the B before compression:
Imgur

And after:
Imgur

Here’s the G before compression:
Imgur

And after:
Imgur

I’m not sure if this is caused by the image being compressed as an RGB so the individual channels are getting ruined.

I understand there has to be loss to get the texture size down, but the roughness is unusable with this kind of compression. Since the Roughness is the most import channel visually I’m considering bringing that in as a separate greyscale texture and baking a slight AO into the colour, but I loathe to have AO baked in like that.

Any texture asset pipeline suggestions from anyone? Do you still pack channels and just deal with the compression?

What about alpha packing the Roughness in Albedo {CR} as one texture and the Normal, Ambient Oclusion and Displacement {NOH} as the second texture…? Is this bad? Texture Compression and Settings - UE4 Materials 101 - Episode 9 - YouTube
I’ve just started learning, if i didnt understood the matter im sorry, but i hope the link helps

Packing into the alpha channel is generally a bad idea as it is very expensive to use and should be avoided in most cases. I’m not sure if the same compression settings apply to the alpha channel tho so it might maintain higher quality. I appreciate your suggestion tho.

BC7 seems to retain a lot more information but does have an added cost. I think I’m just going to go back to bringing roughness and AO in as separate greyscale images as they maintain excellent detail and are not that expensive.

If you see pixelated textures, you might want to bump the compression settings up to HDR Compressed (RGB only) or HDR (RGBA), which will give you 16 bits. In the unlikely case you still need more, you can bump it further to HDR High Precision for 32 bits (RGBA) if you are exporting 32 bit textures

image