Explanation of texture compression settings?

I looked up in the docs but there’s no info on specific Compression Settings under the Compression group in texture properties.

There are things like TC HDR Compressed that I’m not sure what are useful for.

For example, I have a diffuse/base color map that looks horrible with TC_DEFAULT. It’s using DXT1 under format.

Then I tried setting it to TC_HDR_Compressed and it looks great. I see the format is FloatRGBA which may mean it’s not compressed. Also it’s not the right format for my texture I assume since it must be for HDR related things. I have good results with TC_UserInterface2D as well and the format is B8G8R8A8. This seems like a dirty hack right now.

Also, for compress without alpha, do I need to only ever check that if my texture has alpha? If I have no alpha, can I leave that unchecked and not worry about it?

Any more info about this? I’m working with gradients and hand painted faded alpha’s and it seems like HDRCompressed is the only 1 that doesnt produce banding and line artifacts. Is this normal?

Is this the correct compression to be using for dealing with faded out transparency maps that use custom made gradients? In photoshop there is still a bit of banding visible, because we all know how hard it is to get perfectly smooth gradients, even by hand painting them, at least it seems hard for me so far, although this compression setting seems to smooth it a bit?

Because this setting is kind of “uncompressed”. Just check the “size map” feature with textures on different compression settings.
You will see that the memory consumption explodes with heavy use of TC_UserInterface2D textures.

Basically, yes. Generally, you should always make your compression setting depending on the context of your texture asset.
If I have a 3 channel RGB texture, I would use different compressions if it contains three 1-channel masks, or a diffuse color image.

What I usually do with Alpha channels… I only use them where convienient.
Texture compressions that include Alpha data use a lot more memory than a 3-channel RGB texture.
So, if I have three diffuse textures with an Alpha mask each, I would save them as 3-channel RGB textures and all three alphas in a fourth texture, also 3-channel.
Since the green channel has the highest fidelity, I wouls store the most “detailed” Aplha there…
These 4 textures now use less memory than three textures, stored with alpha.
the “price” for that is that I then have to use two texture samplers in the materials… On the other hand, you can use the Alphas much more generic then…

There are so many ways of doing things. Al all have their pros and cons…

2 Likes

I know this was an older post, but just wanted to say thanks for sharing those tips, KVogler! Lots of great info there. I too was looking for more info on the texture compression settings, so I’m glad you took the time to share.