MRAO Texture Packing

Hello guys,
a quick one for you. I noticed that many people pack their textures as RMAO (RMA) while in the UE documentation they mention MRA (at the end of the page). Beside avoiding connection crossing, isn’t it better to pack as MRAO so the roughness channel gets a better compression?
Thank you.

To my knowledge R and G channels don’t have different compression so it’s whatever you want.

You mean that is meaningful just for normal map compression and not DXT1? I’ve been reading through this articleand I got confused.

I remember hearing once that the blue channel has the most compression with DXT, so that’s why you always stick AO on that one, but outside of that you should be fine sticking whatever you want in R and G. Even then, I might be wrong, it’s been a while. The best way to check is just to open a texture in Unreal and look at the channels one by one to see if there’s any notable compression artifacts, as long as it looks good then you’re probably fine.

What do you think about the polycount article I linked?

Sorry, I linked not the exact article, this is the one. I just like to understand what happens to DXT1 compressed texture. Does the Green channel actually preserve more details?

I also find this bit in the official documentation

"Masking and Channel Artifacts

Because of a quirk with DirectX, the Green Channel of a texture will often offer the best compression. If any of your masks suffer greatly from compression artifacts, first try placing the information into the Green Channel to see if that helps. If that does not fix the issue, then try using the Alpha channel to store the information."

So, I guess is settled after all? :confused: If you have more relevant infos please let me know!

1 Like

That is correct. Green channel tends to preserve high-frequency details better than red and blue. Commonly(yet not always), it makes most sense to use green channel for roughness, as this map tends to have the most detail.

1 Like

Thank you very much for your answer, I’m starting and I want to have my basics right.

It is situational and depends on what are you after.
For rusted metal packing RMA over MRA seems better choice(for me at least).
For hero assets/ prominent props and/or closeup shots of the mentioned, you might want to dedicate an alpha channel for roughness map, or even select a better compression method.

I had to test myself what was discussed in this thread. So I created 2 files: a PSD with Alpha (4 channels) and a PNG without (3 channels). What I found out is that the G channel is not actually better then the other channels. The Alpha is pretty much uncompressed. Furthermore, adding a 4th channel really messes with the other 3. So I will stick to 3 as much as possible. To check what I’m talking about you can download these pictures.
Again, if you have more details on what I’m probably missing please let me know.

In the standard DXT compression, the Green channel has 1 extra bit compared to the R and B channels, which makes it 565. If you had an alpha to that, I believe it becomes 555+1. I did some tests on this myself and compared a low contrast, high contrast, and a clouds filter as Roughness maps and the extra bit was negligible. Not enough to worry about switching if you or a group of people are new to UE4/PBR and are already comfortable with RMA. Perhaps if you are using really low-res maps the channel switching may be worth it, but I believe I tested this with a 1k on a smooth, black surface and didn’t think it was worth it.

Hello, I realize that this thread is old. But I couldn’t find any other as relevant as this one for my question.

So knowing that R:Metal G:Roughness (for the extra bit) and B:AO is the way to go.
Is there any particular reason why Substance Painter propose this other setup in their UE4 export preset:
R:AO G:Roughness B:Metallic?
While UE4 docs points to the proposed preset (in this thread): A new, community-hosted Unreal Engine Wiki - Announcements and Releases - Unreal Engine Forums

As long as Green remains the Roughness for the extra bit. There is no difference between R and B in term of compression?

Thank you

These questions are also haunting me currently

i usually go for RDA as i almost always set metalic to zero anyway. unless i obviously use metal tho :smiley: