I’m trying to add detail onto textures using a mask to assign where emissive goes. For some unknown reason, I’m getting extra pixels that are quite large around the edges of the emissive areas. Does anyone know why or how I can remove them? Are there quality settings for emissive? I understand that I can just crank up the texture size, but that seems silly when the rest of the texture work doesn’t need that much detail. Thanks for any help.
You might try playing around with a power node to alleviate some of that. Other than that, there isn’t much you can do to get around it.
That’s DXT1 compression. Does the emissive mask have anything else in the other channels, like emissive in red, roughness in green, etc.? And I’m assuming it’s DXT1 compression since that’s the default, which you’ve left it at right?
I’ve got its compression set to Masks. I am using the mask for other settings since I read that this is an option. Is that bad? I guess I can try a version that is only this channel and see what happens.
UPDATE: After making a custom painted version that is only the emissive color, it was even worse. I’m thinking that my paint program is at fault. It’s called Paintstorm Studio. I guess they need to improve their quality a bit. I’ll try Gimp for a bit and see if it improves. This is quite a shame since I enjoyed it. I’ll likely end up with Photoshop. Thanks for the help.
Masks uses the same DXT1 compression as the default setting. It’s a useless option imo, since all it does is change the sampler type potentially breaking existing materials if you change the texture afterwards. Otherwise, it’s no different.
I would try two different options though. If your emissive mask is a single channel texture, with nothing else in the other channels, set the compression to Grayscale. That will use all 8 bits on a single channel. If your emissive mask is in a texture with other channels used for other things, then try the BC7 option. I forgot the exact compression method, but it’s higher quality than DXT1 so it should reduce the stair-stepping. I believe it compresses the channels separately, so it’ll reduce the cross-talk if your other channels have different information. Both of these will increase file size, but sometimes with the higher compression you can down res the texture by another level(1k to 512, for example) and not have much difference in visual quality.
However, I’ve never used Paintstorm, or Gimp, but if your texture after saving includes those artifacts(unlikely since I don’t think other non-realtime compression algorithms have the same compression pattern), then it’s certainly with the tool and not with the engine. But the screenshots looks identical to a pretty common issue with textures in Unreal.
Thank you very much. I’ll look into all of these.
YOU ROCK! BC7 FTW! Simply changing that one setting fixed it completely. Thank you forever. My whole project relies on this fix… for like years to come.
Keep an eye out on file sizes when you change compression types. Some of them will make your file sizes massive. Also, if I recall correctly, BC7 is DX11+ only.
Thanks. Do you have suggestions for an alternate fix? File size could be important since I’ll be using emissive quite a lot.
If you can’t use one of the higher quality compressions at a lower resolution, then you can go back to DXT1, but try blurring your mask a bit and then using a Power node to tighten up the mask again. That might reduce artifacting a bit.
Yeah, that’s why I said to use a power node earlier. You can help alleviate a lot of that artifacting with them. Mixed with blurring, it helps a lot.
Everything is going to be some kind of trade off. There is no set way to pull this off.
You can shave off stray gray pixels by using a subtract (and subtract like .1 or .2) from the mask before you multiply it into your emissive color.
Honestly, it’s safer to just use a power node, rather than biasing like that.