Hello. I’m trying to pack tangent-space normal maps. I’ve tried a lot of different combinations of options to toktx utilitity but it still gives me weird results
Shortly, I want to check 3 cases: hardware has BC5, EAC RG11, or BC3 and transcode the texture in that format for later use with appropriate underlying GL or Vulkan format for that compression. I check these capabilities in that order and there’s a fallback RGBA32 if none of these formats are supported on the hardware
All testings of the output of compressed textures I make in RenderDoc
If I use BCMP (etc1s, right?):
- options
--t2 --2d --genmipmap --lower_left_maps_to_s0t0 --normal_map --target_type RGgives me good results forBC5andEAC RG11.BC5is swizzled asrrrg - options
--t2 --2d --genmipmap --lower_left_maps_to_s0t0 --target_type RGgives me the same result as the previous one - options
--t2 --2d --genmipmap --lower_left_maps_to_s0t0gives me a good result forBC3butBC5andEAC R11are swizzled asr101(according to the RenderDoc output)
If I use ASTC as a primary compression scheme things become more interesting
There is no --normal_map option available:
- options
--t2 --2d --genmipmap --lower_left_maps_to_s0t0 --target_type RGgives me a good result for BC3 with swizzlerg00which is fine for me but both BC5 and EAC RG11 are swizzled as r101 (according to the RenderDoc output again)
According to Basis Universal repo readme it says
ETC1S textures work best on images, photos, map data, or albedo/specular/etc. textures, but don’t work as well on normal maps.
but it doesn’t work also with ASTC for me
If I messed up some terminology then mention it, please. I’m a new to GPU compression and all its workflow