Solution for rendering SurfaceGuis instead of ViewportFrames

As this is still a problem, I have to figure out a way to fake the display of SurfaceGuis inside of ViewportFrames. Turning the SurfaceGui into a Decal is not a solution as the SurfaceGuis will be dynamically edited.

Getting the face I want to display the SurfaceGui, and making a fake overlaying UI is a solution
image
(in the image above there is a decal replacing the SurfaceGui, imagine it was an overlaying UI over the ViewportFrame)

but what if the part is rotated a bit, the face would be distorted and I doubt it’s very possible to make that the face into a UI
image
(again, this is a decal, how would an overlaying UI represent that face?)

Another possible solution is using actual parts to represent the object inside of the ViewportFrame, but this is complicated as I’d need to make the fake parts in front of the UI, meaning the UI has to become a BillboardGui, coming up with calculations to perfectly place these is easy, but I doubt it will be perfect nor simple.

Are there any ideas to how one should approach this problem? It will be great if someone had a way to do this.

1 Like

I saw the feature request thread and my idea is probably more well-suited there (and I can’t post there but that’s besides the point) - if ScreenGui, SurfaceGui, and BillboardGui had a GetImage() method then we could write the image to a decal and have it render like you suggest, but dynamically.

The only other method I can think of is to write a workaround renderer yourself using decals and ImageGuis, not relying on text (unless you want to go with positioning your own text images) and probably forgoing all of the friendly events you will get with Frames and Buttons and so on.

I am waiting for a solution for this problem as well but I think it is better to wait it out. The feature request has a lot of support so hopefully a solution is provided sometime soon.

2 Likes