Allow us to render "temporary" images with the thumbnail generator

As a Roblox developer, it is currently too hard to render showcases of models and avatars efficiently, the only way to do it right now is with ViewportFrames which have their own issues with performance over just baking an image and showing that.

ViewportFrames cant render at the same quality as the engine, and they can be insanely performance heavy depending on the quality of the object being rendered, as well as that, viewports can only render 2048 parts at a time.

The engine (in Studio anyway) is capable of handling temporary local images (PromptImportFile APIs), so why cant this be added to the base engine with temporary thumbnails (for rendering avatars and models)

If Roblox is able to address this issue, it would improve my development experience because I would be able to render thumbnails of my in game assets efficientally instead of using ViewportFrames

44 Likes

This would be extremely useful, not only for showcases, but for dynamically creating sprites efficiently

3 Likes

This would be EXTREMELY USEFUL, How is it not added by default tho?

3 Likes

This is definitely needed. In most cases, viewports just render static objects.

2 Likes

It would be nice if we could have a feature to prebake the lighting and shadows in a high-quality viewport so that the models look more appealing. I don’t like the resolution limit.

3 Likes

Not only that, You can finally make cameras too if this feature is implemented.
ViewportFrames is reallly garbage for this scenario, and manually uploading the images is tedious. If we get this feature implemented, this will no longer be a problem, and viewportframe is not even applicable for tool icons, etc.
This should be the API:

local assetId = someService:CaptureImageToTemporaryAsset(cameraCFrame, id ( optional ))
2 Likes

I agree. But these images should only be temporary (meaning they shouldn’t be uploaded, ie. only accessible to the devices that calculated the image).

The URL should be of type rbxtemp://.

Example URLS:

  • rbxtemp://0
  • rbxtemp://10
  • rbxtemp://456456456456
3 Likes

With the addition of custom avatar profile pictures and the like, I think this is kinda important. Before that update, all players had consistent “headshots”, but now, their profile picture could show a close-up of a shirt they’re wearing (a “custom” picture), their head at the bottom border of the image, or in my avatar’s case, them crouching down because of a curtsey.

This makes lineups of avatar heads look unpredictable and messy, and makes me think that if I were to show people’s avatars in UI, I’d need to use ViewportFrames just to ensure they’re in a consistent pose.

2 Likes

Now that DynamicImage is a planned instance, now would be the best time to get this implemented, have it convert to a DynamicImage or something.

The API could simply just be an extension of the ThumbnailGenerator hack with a method inside the API ie:

AssetService:GenerateThumbnailAsync(i: Instance) -> DynamicImage

5 Likes