Render to Texture: 3D Objects to UI

First of all Im not sure of the rendering and engineering difficulty but it is sometjing that would be quite useful.

There are a lot of times where I’ve wanted to really make engaging with the in game items more interesting however in order to get this same look I have to put the model usually in the middle of nowhere to showcase it. If we had more freedom to display elements such as cars, tools, and more in a 2.5D view that doesnt obscure parts of the game geometry it could make for some interesting results developers could even apply to a isometric style game with the new orbit camera.

26 Likes

This would be awesome

5 Likes

Can you give specific examples of how it would work? E.g: Do you call a function that sets the 3D object’s zindex and position / there exists an object which u can set’s zindex, position, and adornee as the part you want in 2.5D (I think that’s what it’s called)

Also would the part be cloned, removed from workspace, or still be able to interact with the rest of workspace etc?

Ultimately, the Roblox engineers don’t need or want our implementation or API. They want the feature and use-cases. They can come up with an implementation that is efficient and easy to use.


Regardless – since you’re interested – here’s a possible way to do it that I would like…

Pretty much. I would imagine this as a “3DGui” object or something. It would have a Target property that sets what object to render. If Target is nil, it will render its own descendants. The target and its descendants are rendered with a transparent background. A TargetCamera property would allow setting the camera. If no TargetCamera is set, it would use the first Camera descendant of Target or render at (0, 0, 0) facing (0, 0, -1). It would have all of the normal Gui properties and methods. The render with a transparent background is placed on top like an image with a transparent background.

Depends on the Target. If the target is in workspace then the parts still interact with everything. If the target is somewhere else it won’t interact.

This implementation would be really neat, but doesn’t address performance and quality-level stuff or how the Roblox engine will deal with rendering items outside of workspace. I imagine that Roblox is optimized to only render items in workspace. I’m just using this to give you an idea of some implementation.


Arguing over possible implementations doesn’t make a whole lot of sense. If Roblox engineers think this is a good idea, they will find an implementation that fits all the necessary requirements. They don’t need our help implementing it; they’re great at that. If you want to convince Roblox to add this feature then we need use-cases!

  • Displaying items in an inventory, particularly randomly generated items
  • Displaying items in a shop
  • Displaying items through walls
  • Displaying “portals” by sticking a render-to-texture object in a SurfaceGui on a Part
  • Rendering a viewmodel of a tool on top of the rest of the game
2 Likes

Yeah, things similar to this (3D objects as ui elements) have been requested multiple times and I believe one of the engineers said something about how their render pipeline would not work with displaying 3D with the 2D aspect.

1 Like

Until then some people have cleverly used this module to simulate 3D menu objects. The trick is that you have a part with a surface gui set to the same color as actual gui. Ive seen it done very nicely but I can’t find any working examples rn.

2 Likes

This topic was automatically closed 14 days after the last reply. New replies are no longer allowed.