There is a bug thats been occurring for quite a while, and im not entirely sure if it was ever brought up here, so I decided to do so just in case.
While creating maps for my games, ive encountered a bug very often. This bug pertaining to when you have a transparent part, and a texture of a transparent part. When you place the texture anywhere near said transparent part, it would cause overlapping issues. Where it would make it appear as though the texture is behind the part from certain angles, or above it from others. Regardless of where it actually is.
This happens with particle emitters, textures, and decals.
Ive attached a video to demonstrate the issue, and ive also attached a roblox place link in case you would like to see it for yourself.
Expected behavior
If everything was to work as expected, I expect these textures to always be shown where they should be. If its above a transparent part, show it. If its below, show it below. It should not be affected by the cameras position in such manners.
Yes, back when I used to build maps myself, I would run into this issue all the time, it was a bug I just learned to ignore but it definitely does affect the quality of the game.
I tried my best to ignore it but frankly, theres SO MUCH I could do for my games if it wasnt a thing. Its gotten to a point where I cant just simply ignore it sadly.
I 100% see where you are coming from and completely agree I have been hoping for a couple years now that it would be fixed, surely its not something very difficult for the devs to fix within the engine itself.
Things I wish to do: Have decal trees in the distance to save on performance.
Water splashes that arent models to save on performance
Effects on glass windows near beaches.
The usual stuff you know? Vines for certain areas.
Mostly performance stuff as I dont wish to have models in its place. Though it really sucks when the model needs to be transparent too, as those suffer the same curse T^T
Trust me I know what you mean, I used to build very large maps and I would use textures to help boost performance. Roblox NEEDS TO FIX THIS!!! I agree!
It’s been around for years. It seems that the graphics engine has issues with transparent items behind other transparent items.
There have been so many posts about transparency issues over the years. I’m surprised you didn’t find any if you searched the forums.
Thank you so much! I hope it ggets handled soon, as it can open a lot of doors for developers wanting to work on maps while cutting corners in certain aspects to save on performance!
I wouldn’t get your hopes up too much on a prompt-fix, a Roblox engineer previously commented on a similar issue (with transparent parts appearing in front of others when they shouldn’t) and has said that a quirk in how the engine handles Z-indexing causes this issue and solving it would possibly slow down rendering on low-end devices too-much iirc.
Ill keep my hopes up, theres always something an engineer overlooks. Im sure theres a way to make it perform without lowering performance. Plus, with it being fixed people would be able to cut down corners in certain maps, boosting performance elsewhere. Atleast thats how im viewing it, I myself could be wrong.
I think this should be a feature request (or you could potentially contribute to a pre-existing one, I haven’t checked though). The issue is with how the engine decides which order transparent objects should be drawn in. Right now, it just draws the objects with their center closest to the camera, first. This causes issues with large objects, where moving around can cause the surface of the object to be close to the camera, but the center to be further away, causing other transparent objects to be rendered over it.
I found a full explanation here:
As for the question of why transparency behaves like this, transparency works by looking at pre-existing pixels to figure out how the translucent pixels should be colored. This results in the issue that transparent objects drawn before anything else do not know what is “behind” them, and thus are colored incorrectly.