Thanks to Kurt Kupser


I asked Epic about this once, two RGB+A vs 3 RGB textures. I got a pretty comprehensive answer, figure I'd share it -

Texture compression for PC/consoles is primarily made up of 2 basic pieces: RGB blocks, and Alpha blocks. An RGB block can compress rgb colors with size of 4bits/pixel. Alpha blocks compress a single channel with size of 4bits/pixel. From these pieces, the following formats are made:

DXT1 (BC1): RGB block, 4bits/pixel total DXT5 (BC3): RGB block + Alpha block, 8bits/pixel total BC4: Alpha block, 4bits/pixel total BC5 2 Alpha blocks, 8bits/pixel total

From this, you can see that in general adding an alpha channel to an RGB texture will double its size (going from BC1 to BC3). So your new configuration will actually use less memory than before, since you've removed 2 alpha channels and added a single RGB block. There's a few additional considerations. GPU performance will generally be better with fewer textures. So your new configuration might be a bit slower due to the additional texture fetch. This is generally very small overhead, and you'll also improve GPU performance due to less memory bandwidth, so net performance may still be positive. I wouldn't worry about this too much, but it's something to keep in mind.

Finally, image quality depends on channel layout. You can see that RGB block and Alpha block use the same memory, despite one providing 3x the number of channels. The trade-off is you'll get better image quality out of Alpha blocks. RGB blocks are designed to compress color specifically. If you pack other non-color values into these channels, then quality will suffer. Single-channel values like roughness, metalness, etc will look the best when packed into an Alpha block, either as alpha-channel of RGBA image, or as a part of a single/double channel BC4/5 texture. So in your case, you might see roughness and opacity compression artifacts, since you've moved those values from Alpha blocks to RGB channels. Whether or not this is acceptable is up to you and your art team.

The situation is somewhat similar on mobile, but much more complex as there are many more texture formats. If you're making a game targeting high-end PC/console only, you should also look into the DX11-only BC7 texture format, which can improve image quality.