This is a bit ridiculous:
Source is a layered photoshop file with normal layer transparency. I don’t know if this affects other formats. Here’s how it looks in photoshop:
Here’s the same texture in UE’s texture browser:
Same texture with alpha turned off:
The pixels in a transparent PSD are straight alpha - that is the edges of those plants in my particular document are stored as a 32 bit value: three 8 bit colour values and an 8 bit alpha value: RGBA(0, 0, 0, 0.5). The pixel is in no way pre-multiplied. But on import UE is blending the pixel with white by the alpha value, resulting in edge pixels that are RGBA(0.5, 0.5, 0.5, 0.5).
It should be using the exact pixel data as supplied by the layer stack and pre-multiplying that against the underlying visible layers. If there’s no more visible layers then you’re done. Don’t multiply it by white to finish it off, just use the RGB value you already have.
- It’s not reasonable to fix this by creating the right background colours, merging the layers and transferring their transparency to an alpha channel. That is a MASSIVE amount of work, especially on images that aren’t a single flat colour.
- It’s very desirable to keep PSD files editable and layered in their natural state. This is a quality of life thing.
- It’s desirable to import the original PSD and not a modified copy or a PNG.
Please fix the PSD importer, it shouldn’t have been this way for so long. In this case it’s going to directly cause me hundreds of hours of work to get around it. Seriously, this is worth a hotfix.
I’m still using 4.19 but presumably if it wasn’t fixed by now then it isn’t fixed in 4.20.