Texture compression artifacts when using alpha

I am seeing weird artifacts with texture compression when an alpha mask is present in the texture’s alpha channel. It seems the alpha channel is causing artifacts in the RGB channels, please see pictures:

Here’s the texture without an alpha channel:

“Texture without alpha channel”

Here’s the same texture with an alpha channel, notice the artifacts around the edges:

Here’s the actual alpha channel:

Why is the alpha channel affecting the look of the RGB channels?

Thank you for your time!

It depends on what you’re exporting your texture as. Try exporting the texture as targa 32 bit. Then hook it up in unreal and let me know how you got on.

Also when you double click the texture what is your compression set to?

Are you importing your textures as PNGs ?

The texture is a 32 bit targa file, and the compression setting is BC7. I have tried using Default and Masks compression settings and it still looks the same. I have not tried importing a PNG version of the texture though.

This is a bit of an odd situation because alpha and RGB should not interfere with eachother. At least, after extensive testing on my end about a year ago which game me my conclusion.

That said, I did some tests and besides BC7 compression all the results had this: (me swapping between alpha on/off)

For me personally though, BC7 (DX11) compression is the only one that has a constant result without the artifacts.

To solve this, if your work allows it… you might want to save the alpha separately (put it in the R channel > compress as alpha) from the RGB image.

edit: which is why I moved this up to bug reports.
(im notan ue4 dev, just an admin on answerhub)

With BC7 texture compression alpha actually stealing bits from rgb channels.
With default compression rgb texture is using BC1(dxt1) and with alpha channel it’s using BC3(dxt5). BC3 stores rgb as BC1 and alpha as BC4 so these are never going mess with each others.
There is detailed explanation.

that the thing, bc7 is one of the few compression where the alpha is NOT influencing RGB. (and vice versa)
DXT5 in this case has the alpha interfering with RGB.

Hey guys,

I have reproduced this issue and logged a report for it here: Unreal Engine Issues and Bug Tracker (UE-42093)

You can track the report’s status as the issue is reviewed by our development staff. Please be aware that this issue may not be prioritized or fixed soon.

As you can see in the description I think this is due to the high contrast in the alpha channel in a small area (where the hard edges are). If you open the texture and change the “Min Alpha Value” to 0.1 that should help with the compression. If that still doesn’t help try to reduce the contrast further by changing the min and max alpha values. You can always increase the contrast back in the material graph.

,

I’m experiencing the same issue on 4.18.3 regardless of the texture having alpha or not. Artifacts are in the areas of high contrast in same places in every channel. Workaround described above doesn’t work for me.

Tried several other compression types (I’ve used Masks on first place), but no luck. The texture itself is a paint mask for an object, so there are a lot of intersecting areas of high contrast.

Please advise.