Trying to do some optimization I wan’t to move the Roughness maps to Albedo’s alpha channel but since the Roughness maps shouldn’t be set to sRGB and Albedo itself should be set to sRGB I’m not sure if it’s the way to go. I tried putting the Roughness into Normal map’s alpha channel too but it seems to ignore the alpha while importing in engine.
In short I would stay away from adding masks to Alpha’s. A Texture that has an alpha will cost 2x as much as one without as alpha channels are not compressed. What I would do is make Mask Textures were each channel of the Texture has a different mask packed into it. This way you can disable gamma correction(sRGB) and not have to worry about it effect something else. This also has the added advantage being able to scale down your masks independently of your Base Color and Normal maps. Finally UE4 uses BC5 for Normals maps which gets rid of the B and A channels on import. This is why you can not use the Normal maps alpha channel as UE4 gets rid of it.
fwiw the cost of a DXT5 is the same as two DXT1s. So if you only have one mask texture, it doesn’t matter for memory consumption whether you pack it into one DXT5 via alpha or two DXT1s. You also can counteract sRGB in photoshop if you want to channel pack something. If you have multiple masks then channel packing is definitely the way to go.
Just make a level modifier and move the midpoint to value 2.2.
Reading from single texture can be bit faster than from two separate one. Also if you pack roughness to BC3 alpha channel then it’s basically BC1 + BC4 format that is superior format for single channel compared to BC1. BC4 has 8bit endpoints and 3bit indices. BC1 has 5bit red, 6bit green, 5bit blue and 2bit indices.