Hi! So I want to find the best possible setup for the following textures:
- Albedo RGB
- Opacity
- Normal RG
- Height
- Emission RGB
- Ambient Occlusion
- Metallic
- Roughness
I've prepared the initial layout, which is the best I can think of by myself, but I'd be happy to hear your suggestions on that. And I don't care if I'll have to use DirectX 11 / OpenGL 4 features. I want to keep the whole material under 16MB or 18MB at 2048x2048 resolution while maintaining it's decent quality. The layout:
- BC1 RGB: Metallic + Roughness + Ambient Occlusion (2MiB)
- BC1 RGB: Emission R + Emission G + Emission B (2MiB) (Optional and toggleable)
- BC7 RGBA: Albedo R + Albedo G + Albedo B + Opacity (4MiB)
- BC5 RG: Normal R + Normal G (4MiB)
- BC4 R: Height (2MiB)
Total: 14MiB (12MiB without emission)
Also is there a format that'd let me store Normal and Height in one texture?
Replies
If there are no metallic details, I would pack height instead of metal. Theres no reason to have full-black metal texture for brick wall, for example.
Then what do you think about using ARM map instead of MRA? (That's a lot more awesome name tho!)
I want to save some space when using BC1 for ARM and emission. But if I could store normal and height together in 4MiB BC7 texture, then I'd go for BC7 ARM (smooth AO transition) and optional BC7 emission compression (but the gradient appears very rarely here). And the main issue is here, when Chris_F writes, that BC7 introduces cross talk between different texture channels and that's why it's not ideal for normal maps.
Same thread advised BC7 instead for NM. I think it was one of the Skyrim devs talking about their switch from the older DXTs.