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

Could we get an estimate of when these may roll out of beta? EditableImage will heavily improve performance for my 2D game I’ve been maintaining

can we write to meshes in parallel in the future? As it stands I have to store my own representation of the mesh and then pass it to the main thread once I’m done so the real mesh can be written to.

1 Like

This update is amazing, FINALLY I CAN MAKE A DRAWING GAME IN ROBLOX WITHOUT A MILLION CIRCLES
Overall a greater update that can be used to make more unique and interesting projects :+1:

just tried it out rq. feels neat, one of the most wanted update indeed!

We understand that being able to update physics information from an EditableMesh has a lot of uses, and we’re looking at the best way to provide this. Thanks for your feedback!

Thanks for the suggestion, we’ll take it into consideration!

1 Like

Thanks for the recommendation. Unfortunately, we don’t have batch API right now. We will take your user case into consideration as we work towards it.

3 Likes

So far I haven’t been able to figure anything out, it’s all kind of confusing. You guys make such functions, but they need full-fledged node systems at least. Without a full-fledged node editing menu, it is very difficult to work with this. Moreover, since this will be used mainly for visual effects, the issue of adding nodes to the roblox becomes even more important! So far, it feels like they’ve crammed in a small, cropped piece of opportunity instead of releasing a full-fledged system. :sneezing_face:

1 Like

Clearing all vertices and tris seems to break the mesh and causes it to no longer update.
The mesh is updating every heartbeat.

Clear function
local function ClearMesh(Mesh:EditableMesh)
	for _, v in Mesh:GetTriangles() do
		Mesh:RemoveTriangle(v)
	end
	for _, v in Mesh:GetVertices() do
		Mesh:RemoveVertex(v)
	end
end

If I’m doing something wrong, its still an issue as it should be giving me some sort of error or warning.
The circle script uses existing tris and vertices to update, creating new ones if needed.

It seems some API calls on the mesh yields infinitely long after clearing.

3 Likes

Also having this issue, did you by any chance figure out what the cause of this may be?

1 Like

Try deleting the EditableMesh instance. I found that works.

1 Like

Yes, I know there are workarounds. I’m just reporting the issue.
Thanks for suggesting it though.

1 Like

I know this isn’t the intended use of editable image, but i couldn’t resist the urge of trying to recreate the encounter transition of FFIX with it XD

26 Likes

Try MeshPart.DoubleSided

You can find detailed explanation in EditableMesh | Documentation - Roblox Creator Hub section Winding.

1 Like

I tried that, and I was able to see the cube’s mesh at the bottom. But the shading is really weird
image

When creating an EditableMesh from a blank mesh-part and parenting a SurfaceAppearance, the SurfaceAppearance normals don’t apply to the mesh even after setting the vertex normals and vertex UV’s.

What it looks like:


What it should look like

5 Likes

That is probably because the face on the bottom is inverted. In Documentation on EditableMesh there is a section called Winding, you should check it out.

1 Like

I interpret it as you will do this, but the timing is highly uncertain.

Do you have any plans on lifting the 20k triangle count restriction?

I did a quick experiment of generating a voxel chunk world using EditableMesh containing 371k blocks as 360 editable mesh chunks and it works pretty well, in combination with the new Luau buffer it will be really cheap to sync over the network and update too (4kb per chunk and I have a lot of free space for more data).

Last key technology to enable building something like this is the collision.

10 Likes

This is a must feature. As for now it is easy to multithread image generation on EditableImage, you just need to make multiple threads and make them generate only a part of image, and after generation, go back to synchronized thread and use WritePixels() function which updates all pixels very fast. But multithreading meshes won’t give you too much performance because after calculating the mesh which can be not too performance heavy, you then need to synchronize thread and then update the mesh by looping for every vertex which is by itself bad on performance.
So it should be possible to update mesh in parallel or atleast possible to move/create many vertex using only 1 function.

3 Likes

Hey !
I’m trying to play with EPIC Editable images,

There is any way to have a filter like " Nearest Neighbor " for pixel art ?

EDIT: Ok Finally I applied a custom “filter” ( I just enlarged the image 20x )

2 Likes