[Studio Beta] Updates to In-experience Mesh & Image APIs

I can provide some reasoning behind the EditableMesh changes. There are 2 categories of changes in EditableMesh with this update:

  1. Split attributes on a vertex
  2. Methods using triangles → faces

The reason for the change in #1 is that there are many mesh editing scenarios where it’s very difficult to do the right thing if you only have 1 set of attributes on a vertex. In the example at the top of this post, a sharp cube uses a lot more vertices and normals.

But more importantly, always having to duplicate vertices makes mesh editing operations difficult or impossible to do correctly. For example, if you want to move one of the cube corners, then you need to move 3 vertices at the same time, or else the closed cube will open up. We also ran into cases where editing some smooth meshes would cause severe visual artifacts because a vertex had been duplicated due to a UV or other seam, which made recomputing the normal impossible.

We’ve heard several requests to make more convenient and more performant methods for editing attributes on vertices, which is something we’re working on. But we wanted to get the essential functionality for split attributes out earlier, so any breaking API changes happen during the studio beta. We’ve also optimized many of these methods from their initial (unreleased) implementation.

The reason for the change in #2 is that at some point it would be very useful for mesh editing workflows if EditableMesh supported triangles, quads, and n-gons. This is not something we have implemented for the first release, but we’re making this change so that the API is easier to use when we have those implemented.

3 Likes

I fear someone may know that I’m exaggerating, but your case continues to prove that Roblox should just give up on holding us back.

So is Editable meshes in experience now or not? Because title says it is but when i read it says it isn’t.

It seems to me that when getting the UVs of a mesh and assigning them per vert (Via now saving GetUVs and iterating through the table with a for loop) They aren’t being fully overwritten?

Converting my previous code that required getting the normals per-vert and assigning the UV’s to each individual vert was heavily impacted by this, so I’m hoping that there is just a simple solution that I missed.

Hi Bravo, I’m not sure I’m understanding the issue you’re seeing fully. Could you explain a bit more about what behavior you’re seeing vs. what you’d expect to see?

I’m unsure if it’s helpful, but I made a small sample rbxl with animated UVs.

animating_uvs.rbxl (121.5 KB)
animating_uvs