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:


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.