Introducing in-experience Mesh & Image APIs [Studio Beta]

Man! i have been waiting for those APIs for so long now i can finally do things in real-time, I can’t be more happy!

The best Roblox update by far!

Although i have a question does EditableMesh support Gpu Instancing?

9 Likes

LETS GOOOO!

Can we please please please get an API for instantiating an editable image from a viewport frame, or from a canvasGroup perhaps?

You already have the texture data there…

34 Likes

Roblox news accounts are trembling in happiness as we got 4 updates in one day. Truly one of the greatest moments of all time.

Aside from that, I’ve been waiting on this update for a long time now, thank you so much! However, I got a few questions about Image moderation and EditableImages:

  • Will it automatically go through moderation when replication occurs? (For example, if I copy the EditableImage instance to the Workspace, it automatically sends the image to moderation? Or do you have to call an API like it is in the filtering system?)
  • Will we ever get an API or a way to get image data from existing Images without converting them into an EditableImage? Or from ViewportFrames/CanvasGroups?
13 Likes

This is one of the features I’ve wanted to come to Roblox for almost 8 years now, so it’s awesome that it’s finally here! One thing I’ve noticed while developing my little demo of this feature is that there appear to be memory leaks, which would cause Roblox Studio to slowly consume more and more memory as I developed it. For example, here’s after generating a few meshes, unloading that place and going to an empty baseplate, and a fresh studio instance on an empty baseplate. This did reach the point where it started to force my computer to begin page swapping which wasn’t great, hehe.



21 Likes

In the initial version of this, just raycasting and getting UVs from the EditableMesh won’t give you ideal results if you are painting something with a very complex UV map. This is especially true if you want to add a decal to something with a complicated UV map. Internally we have been working on a projection painting implementation that projects each individual pixel on to the texture based on the geometry of the Mesh and the UV map. This will hopefully be available early next year.

The main problem with this is that the information required to do this is not available for all textures. On the server, we never download any textures (except when you create an EditableImage). On some platforms, we download compressed versions of textures from the backend which we never decompress on the CPU side so the information isn’t easily available (especially in a scalable way).

19 Likes

The main reason why we haven’t already done this is because we also want to be able to support this use case on the server. This is necessary to make sure we are building it in a way that will allow for future replication and publishing use cases.

But I promise you we are thinking about it! (and we already have some very cool demos :slight_smile: )

29 Likes

I have been waiting for months for this day…
Every week I would look at the API changelogs and read about DynamicMeshes, and how they would eventually be renamed to EditableMeshes.

And now, it’s finally here. I can’t stress how many things you can make with the ability to edit on-runtime.

YES!!!

5 Likes

Would direct vertex manipulation perform better than manipulating a grid of bones on a large plane? I am working with skinned mesh oceans and am very curious if this would be a practical use case for EditableMeshes.

The mesh in question:

21 Likes

Regarding editable images can we please have a way to take a screenshot and then map it to a editable image.

9 Likes

Didn’t see this specifically mentioned but, will the 1024x1024 size limit on EditableImages be increased in the future?

7 Likes

please let us be able to union meshes PLEASE

7 Likes

You could make a mesh union system using this tech, might be complex and for proper use you’d have to wait for some of the limitations to be lifted, but having access to all the mesh data such as vertices means you could calculate union operations.

6 Likes

YES YES YES WOOHOOOOO!!! WE’VE BEEN WAITING FOR ALMOST 6 YEARS!! THANK YOU!

12 Likes

You have no idea how happy I am. We can now finally make pixel-based renderers/game engines within roblox!

I can now have a real-time raycaster engine casually running around 140FPS at 240x240 pixels

59 Likes

OMG YES YES YES!

Finally ive been waiting for this update for sooo sooo long, thank you roblox Christmas came early.

6 Likes

How will this look? Specifically the moderation portion. Any sort of real time moderation sort of concerns me- while I see the need for it, I also am curious to know it’ll work on the backend / behind the curtain.

Do you plan to incorporate some sort of learning algorithm to prevent profanity, etc… similar to how current asset moderation works? If so will that not bottleneck people making creations?

6 Likes

Honestly im curious on this too. I’m just concerned it will affect my usage for game engines / real-time renderers that need to run 60+ FPS.

Like, I really don’t think it’s possible to moderate every frame on a real-time game engine at 60 FPS without some major flaws.

12 Likes

dynamic bullet holes!!!

weird mesh projects!

yesss

14 Likes

Finally! A way to decrease the pixel density and make it seem retro.

7 Likes

Going off this though, one thing that really needs to be added to EditableMesh is batch methods, allowing you to send a whole table to the editable mesh instead of one at a time, you can see in the output log it takes quite some time to put the mesh together using the current API. (It also must be done on the main thread!)

14 Likes