ViewportFrame Release

Can’t wait until the ViewPort Frame goes public and we can create some pretty nice 3D guis.

20 Likes

Get some pretty nice cameras as well, for role-play games and the like. SurfaceGUI cameras :open_mouth:.

1 Like

Think this was everyone’s first idea lol.
https://i.gyazo.com/d14cdb0c080675a694c383dbca3b8de9.mp4
At first, I wanted to test my idea of replicated on screen (camera view)
Then I made a few adjustments and now it only shows what is in front, but not everything. There has to be a PrimaryPart showing to replicate.
https://i.gyazo.com/9f671540bbcc459abc8238162a9a133f.mp4

4 Likes

Why don’t you just replicate the whole of workspace and then:

Keep everything the same unless descendants are added/removed

Replicate character movement

Replicate movement of certain things in a folder?

That way, you could render things behind things as well.

edit: I’ve done this and it turned out noice

1 Like

I’m looking forward to this!

Do you realize how inefficient that is? Not trying to be rude, but replicating everything in workspace will lag any PC. Only replicate what’s needed in front of the camera.

5 Likes

This seems awesome! Can’t wait to see the full release! :smile:

This looks like a nice system. I hope it works out.

1 Like

This seems interesting hope to use it sooner glad you put this out.

I’m still going to replicate all stuff tbh.

I think it really depends on how much you do replicate.

Having things destroy & create themselves is a lot more costly than simply duping everything visible to that mirror into a viewport frame, besides the characters of course.

1 Like

That’s still the worst way to do this, and it’ll be so inefficient.

External Media External Media
55 Likes

Very nice!! Any pointers for doing this?

1 Like

Until we have the ability to apply our own shaders to cameras/textures, you won’t be able to easily use SurfaceGuis for this, since the perspective will get messed up at off angles. Trust me I tried for hours.

Intead there’s a trick that you can do with BillboardGuis where you set the ViewportFrame to the same size as the camera’s Viewport (larger than the BillboardGui, which can cover a smaller amount of your screen). Then using WorldToViewportPoint, adjust the ViewportFrame’s position depending on where the BillboardGui is on your screen. As long as you can align the two cameras, the perspective will look perfect.

In this example I’m cheating a little bit. I’m cropping the BillboardGui past the edges of the doorway using glass blocks positioned in front of the screen with .9999 transparency. It wouldn’t be very practical yet in a real game. We need the ability to crop GUIs without using bugs, then the amount of possibilities will be higher.

19 Likes

Have you tried messing around with setting the camera’s CFrame to a non-orthogonal space?

Check out this tweet and its replies (including an explanation and a link to some source code):

4 Likes

I haven’t tried that, it looks cool. I tried doing similar stuff to figure out portals with SurfaceGuis though. I don’t think this will cut it. I’m by no means good at math, so I could be way off, but I think the only way to get a properly projected view when looking at the surface from a weird angle is by having per-pixel control (ie shaders) that Roblox doesn’t offer yet.

I’ve tried it out, I understand how to manipulate the Camera’s CFrame matrix but I don’t have the slightest idea of which matrix values need to be manipulated to compensate for the shift in perspective. It would be awesome if some CFrame experts could provide some insight, this seems to be the cleanest and safest method of achieving this effect.

1 Like

Nice tho!

I can’t wait for this feature to be released, I have some pretty cool ideas for it. I also really like what @Emilarity did with it, which I will probably do as well.

One of my ideas was too use viewpoints for spectating other players on TV screens in the lobby of a game I am working on.