What are the trade-offs of using packed vs unpacked textures? Here are the trade-offs I’ve identified:
- Packed textures require fewer samplers. This is only important if you’re hitting the max (e.g. 16 allowed by shader model 5).
- If you are not using all channels of a packed texture, you are wasting GPU memory. Example: you have a packed Roughness, Metallic, and AO, but are not reading the Metallic channel in the material.
- Packed textures use less disk space than unpacked textures. NOTE: I don’t know if this is true, I’ve seen it mentioned on the internet but haven’t measured it myself. At best it seems like it would reduce any per-texture overhead (like a file header) but that seems like it would be minimal compared to the size of image data.
- Unpacked textures allow for permutations without exploding the number of textures. Example: you have 10 roughness variants and 5 AO variants, to create packed versions would require 10*5=50 packed variants. In this situation, you’re probably better off using unpacked (at the cost of an additional texture sampler used in the material).
Disclaimer, I don’t know a lot about this topic, so could be wrong on any of them. Please correct me if I’m wrong.