Support for using ViewportFrames (and other render textures) as Images, Textures and Decals

As a developer, I can currently generate all sorts of crazy cool dynamic textures by using ViewportFrames and CanvasGroups. (Both super amazing features btw!)

What I can’t do is then reference the texture created by these processes as a texture in other systems, thus saving both drawcalls and texture memory.

Ideal places I would like to re-use an existing render texture are:

  • ImageLabels in other UIs
  • Decals
  • TextureAppearances
  • SurfaceAppearances (Although I understand this might be difficult due to the baked/static nature of these)

An example of a cool idea using this would be rendering a tree into a viewport frame, then using a bunch of TextureAppearances or SurfaceGuis to replicate the tree image around in a drawcall-friendly way:

39 Likes

Other things you could do with it:

  • Dynamic character and vehicle skins: Let uses place stickers and decals in the viewport frame, and it’ll show up on the world model

  • Animated textures on models: Animate the viewport frame = animation on the world model - eg: you could make animated lava by animating the contents of a viewport frame, and then using it as a texture for other objects.

19 Likes

With Roblox seemingly working on a dynamic image that would allow you to write arbitrary data to be shown as an image, I think it’s definitely time to revive this feature request while it’s still in the design stages.

Having the ability to effectively generate images and then use them as textures would be INSANELY powerful, even if it’s not necessarily applicable to DynamicImages.

I’d love to use something like this for a “crawling world” type scenario where the world seems to shift and move around you, but in reality, it’s just the texture from a DynamicImage / Viewport / CanvasGroup changing. And that’s just one use case!

6 Likes

Just thought of a few more great reasons for this to exist: Viewport manipulation!

2 Likes

A property to set the viewport WorldRoot would be useful as well so you don’t need duplicate assets for multiple views of the workspace.

Also really hoping that we do end up getting that DynamicImage feature that would be amazing.

1 Like

awakening this thread to tell that i also want a sort of viewportframe object that renders all of the workspace on a surface with a defined camera

we dont want repeated part adding just to display a mirror

1 Like

I could see this being very useful for games that have inventory systems that use viewport frames to display items.

how did u make the Chromatic aberration? its so cool

we need this feature in studio because it could make making mirrors so much easier