Home Unreal Engine

What is packed Texture ?

polycounter lvl 2
Offline / Send Message
Chidambhar_Swaroop polycounter lvl 2
Hello Polycounter's,
I have a question for you all. Well, I notice a lot of people use "Packed Texture" method. First of all, this is what I understand (If I am wrong, please correct me) Unreal Engine uses a PBR Workflow, which is Diffuse, Metallic and Roughness. Instead of connecting each node with a different Map, we can basically merge the metallic and roughness together. Where the R Channel will be the Roughness and B Channel will be the Metallic. By doing this we are saving unnecessary computation, hence better performance. So basically instead of using 3 texture's we are using 2 texture. This is what I understand from what a packed Texture is.

This is the video I saw to understand what a packed texture is - https://www.youtube.com/watch?v=4-EsLM40_9o&index=3&list=PLSlkDq2rO1t7Guw6DbhNVDXRxw6EtLOoF.

So I got few questions...
1) Why can't we combine all three texture which is diffuse, metallic and roughness to one texture and connect each RGB Channel Output to the respective Main Material Node ??? In this case, we can use only one texture.
2) Can we add a Normal Map too? for eg in the Alpha Channel...
3) By any chance are we compressing any details in the texture?

Some links I found, about compressing texture when u combine it - https://answers.unrealengine.com/questions/571740/compression-settings-for-packed-textures.html
-https://forums.unrealengine.com/showthread.php?133877-MRAO-Texture-Packing

4) It would be great if you guys let me know which map I can combine and which I should not because, in the video, he says u can use metallic, roughness, opacity, opacity mask and height map can be made into a packed texture but not normal and diffuse. In the Unreal Forum, I read different things...

Please help me
Thank

Replies

  • Obscura
    Offline / Send Message
    Obscura grand marshal polycounter
    This has nothing to do with pbr, and channel packing was always a thing, it didn't just show up after the transition to pbr. It was also used back when there was only phong kind of shading with specular and specular power (glossiness). They were still packing grayscale info into channels, I guess its just that this piece of information wasn't really advertised between artists so only people knew it, who were actually working with games. Now more people knows about it.

    Example to make it easier to understand what this does:

    - you have a color map (uses 3 channels, r,g,b and you have an option to add an alpha channel)
    - you have a roughness map (grayscale information, needs only a single channel)
    - you have a metallic map (grayscale information, needs only a single channel)
    - lets say you also have a mask for emissive (grayscale information, needs only a single channel)

    Now this is technically 4 textures, and the grayscale ones has unused channels, that doesn't do anything but still costs memory, texture sampler, etc.  But you can make it 2 by packing the grayscale into the individual channels so you end up with 2 textures, all of their channel filled with useful information. You would plug the channels to the corresponding slots (roughness, metallic etc).

    About the  compression : 

    Your textures will always be compressed in a game. There are only a very few cases when you would use an uncompressed one, since that costs 4 times more memory ! 
    When you import a texture into Unreal, it will have some compression applied to it, based on the compression setting. Normal maps also compresses but in a bit more specific way. Normal map compression in Unreal will ignore the alpha channel and remove it. Normal map also needs to be in -1,1 range so if you want to put something into its alpha or b channel, its possible , but you would need to use default compression, and put the normal map back into -1,1 range in the material.

    What each compression setting would do, is described in the documentation, you can check them out there.
Sign In or Register to comment.