Looking for ViewPortFrames workarounds. Bad rendering!

ViewPortFrames look awful! I appear to have ran up against the limitations of Roblox. Does anyone know of ways to get around this poor quality rendering? Can a GUI be built directly in Workspace?

I am unable to report engine bugs, but I don’t know there’s anything going on they don’t already know about. See the bug report for glass objects. I find myself leaving too many of my ideas in the “wait and see” pile…

image

In Workspace

image

In ViewPortFrame

1 Like

The only alternative you can get are ImageLabels. There are more alternatives, but not for your problem. Actually you can do the Viewmodel system: change the CFrame of the models everytime the camera CFrame is changed.

1 Like

Viewmodels! That shows promise. The example I just watched would not be usable for GUI elements, but I’ll keep looking.

OK, this shows a LOT of promise! This version of the GUI does have 2 major flaws that I see.

  1. Because this exists in Workspace, not “GUI space” there is no such thing as “relative position and size.” I am not sure how to code that, but I probably need to try out a few size screens and see what works. Maybe there is a nice formula to set the camera location.
  2. The world can clip the GUI elements. That might be annoying.

Looks wise, its perfect!

Still working but I want to drop some credit for the ViewModel code that got me this far.

Roblox FPS game tutorial EP1 Viewmodel Basics(Read Pinned Comment) - YouTube

2 Likes

Yes, there is 1 workaround for this which is to make the objects as tiny as possible, but that may break the model aswell clipping ut into the camera.

I did shrink the elements, and it seems to be OK all the way into 1st person, though I have not reactivated any animations yet. I’m now working on the positioning math. Hopefully it’s linear!

OK, let’s wrap this up!

  1. I set the camera (pointing at the center of the viewport) based on the corner GUI element (the level dongle). The positioning of the camera is not linear, but it is proportional to the ratio of CurrentCamera.ViewportSize.X/CurrentCamera.ViewportSize.Y I multiply this ratio by 2.9, and I get my X offset. Y and Z offsets are constant.
  2. I was unable to salvage the GUI when I resized the screen. It just disappears! So instead of messing with that, I trash it and clone a new copy. Can resize the screen at will!
  3. Shrinking the gui elements did stop most of the clipping issues. The animations were not broken.
  4. I have not fixed the buttons yet, but this is the easiest part of the GUI to mimic in the Workspace.

1 Like