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:
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.
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!
Just thought of a few more great reasons for this to exist: Viewport manipulation!
Chromatic aberration
Many games use multiple ViewportFrames to mimic chromatic abberation. This is unfortunately very costly, but it looks cool! Being able to render a single ViewportFrame to a texture would result in a 3x or more performance improvement for implementations like this (given how you have to create and manage 3 ViewportFrames) while also opening more room for experimentation.
Splicing / glitch effects
Check out the video below (JUMPSCARE WARNING)
See those vertical shift effects in the sprite? I’m assuming this was done with multiple ImageLabels with their ImageRectSize/Offsets repeatedly being changed. Imagine being able to do this with any arbitrary model inside a Viewport!