ScreenGui.Transform property to skew UI / have 3D UI

As a Roblox developer, it is currently too hard / impossible to have properly done 3D UI in any kind of modifiable/editable way.

I would like a ScreenGui.Transform CFrame property to “skew” UI in a certain direction.

My game uses SurfaceGuis to mimic this, but we suffer tremendously from clipping issues / other misc. issues like weird interactions with layout features.

An example of a clipping issue:

It means our UI also cannot ignore color corrections.

11 Likes

Setting AlwaysOnTop doesn’t fix this?

There’s other issues with AlwaysOnTop, some features like brightness/lightinfluence don’t work with it.

Also I just.. don’t want to use SurfaceGuis. They are extremely difficult to layout properly and cause a lot of unnecessary instance usage

1 Like

Hi folks, I work on Engine UI. I’d love to make ScreenGui more useful like this. A question though:

There’s other issues with AlwaysOnTop, some features like brightness/lightinfluence don’t work with it.

For ScreenGui, there is no lighting or brightness at all - this is essentially how alwaysOnTop renders. What are the cases where you want to render in screenspace but still be impacted by either of these?

2 Likes

What are the cases where you want to render in screenspace but still be impacted by either of these?

In the screenshots I provided in my post, I use SurfaceGuis which have the parts CFrame set to be the cameras CFrame every frame. It would be significantly more performant if I didn’t need to do that.

Brightness, while nice, is kind of optional – UIShadows do the trick quite well.