Roblox doesn’t allow graphics programming which is a pity, but it looks like there’s some hackish ways to alter render order.
Anyone want to try and fully document the behaviour?
Here’s what I’ve got so far, after a few hours of testing.
These rules apply from top to bottom, the top rules overriding bottom rules.
- Transparent Glass parts that aren’t meshes completely hide anything transparent behind them.
- Transparent Glass meshes render behind all transparent objects. When two of these are layered, the one behind appears in front.
- Anything transparent and non-glass that has a humanoid as a sibling layers with other transparent objects such that screen Z position does not matter at all. It will render in front of all transparent parts, except for those that also have a humanoid sibling, in which case the layering is unpredictable. This weird layering even applies to how lone meshes render, for example RainbowWings are transparent and the mesh has two pairs of wings, but the bigger pair always renders in front no matter what angle you view from.
- Transparent meshes sometimes render in front of transparent parts, depending on camera angle, part sizes, and positions.
It should be noted that wherever I mention “Mesh”, it only applies to meshes of type “Head” and “FileMesh”.
There may be more behaviours I haven’t found.
I’m hoping to eventually make a really well-working see-through portal, but the current layering behaviours aren’t enough.