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

Fixed link:
https://devforum.roblox.com/t/mesh-creator-edit-meshes-easily-with-free-plugins/

1 Like

is it intentional for EditableImages to not render inside plugin widgets?

The fix for this should be released very soon!

2 Likes

Is there an approximate release date on editable images yet? Transparent communication on this matter is crucial for my game design decisions.

When I create a EditableImage with Instance.new(“EditableImage”)
It only appear on Server Side
Please tell me what I’m doing wrong

MeshCreator v0.0.3 has been updated.
Now you can save/load Editable Mesh created with MeshCreator and view it in-game.

Plugin link: https://create.roblox.com/marketplace/asset/15946275922/MeshCreator
DevForum(with tutorial): MeshCreator - Edit meshes easily with free plugin

EditableImage and EditableMesh aren’t replicated or saved. You have to create one on the client or on the server.

yea i realized the problem after i made the reply
I fixed it by firing a Event to clientside to create the EditableImage

1 Like

I don’t know if its me or not but I just cannot seem to get the :FindVerticesWithinSphere() to work. It displays vertex’s but the wrong ones and not in the right places.

This bug should be fixed with latest version. Thanks for reporting the bug!

2 Likes

Memory leak on EditableMesh should be fixed in the latest version. Thanks a lot for reporting the bug, and let us know if you have any further comments!

1 Like

The returned vertex coordinates are in local space. You might need to convert it into world space using CFrame of the MeshPart.

1 Like

EditableImage should work in plugin widgets now!

3 Likes

are materials and material variants supposed to work with editable meshes? I can only get surface appearances to add a texture (editable images probably work too but i haven’t tried)

2 Likes

My usecase:
Currently I’m working on a development tool that allows you to make a “grass map” by drawing on meshes in studio. You can then read the map and get the position of every pixel that is green in order to place grass/foliage there. The intent of this is to have a efficient way of storing and manipulating grass and plants on parts and meshparts (instead of having every grass piece loaded at all times, I store the grass in the image and load in the grass when needed, increasing performance at a cost of a little bit of memory).

I’ve run into some issues/inconveniences I’d like to address:

  • Parts can’t be turned into EditableMeshes. More specifically: blocks, spheres, wedges, corner wedges and cylinders. This means I can’t read triangle, vertice nor UV data of a standard part.
    My current workaround is to take any part/shape I can’t directly modify, throw them into Blender, unwrap them, and then put them back in the game as a MeshPart. This works, but is a pain and it would be really nice to have a “native” way to turn Parts into EditableMeshes.
  • Creating EditableMeshes from a MeshPart is very slow. I am still working on my tool but I’m pretty sure this will be a major bottleneck in terms of how long it takes to convert anything to an EditableMesh.
    For example, I’m planning on having mesh terrain in order to have a lot of detail in the game. If I have 100 of these meshes on release and it takes 0.2 seconds to create an EditableMesh from a MeshPart, it’ll take 20 seconds just to finish creating the meshes.

Also, unsure if this is already implemented, but I’d like to be able to publish objects in Roblox Studio and not just in-game, since otherwise my tool will be pretty useless.
One more thing: maybe some built-in library for triangle math would be a good idea. I spent a lot of time creating functions to get and convert Barycentric coordinates from-and-to Cartesian coordinates which could be nice to have as built-in functions.

3 Likes


I love it

31 Likes

For some reason when removing all of an EditableMesh’s vertices and triangles the mesh doesn’t update unless the EditableMesh is re-parented to the MeshPart.

Is there any plans to work on performance for :SetPosition? It seems to be super costly when used frequently and rapidly

I managed to write my own canvas and shader implementation. It’s surprisingly fast. And this is all the code in the shader (uniforms are a table).

local function shader(uniform)
	local UV = uniform.UV
	
	return Color3.new(UV.X,UV.Y,0), 1
end

canvas:RunShader(shader)

3 Likes

This actully looks great. I have been using EditableImage for a while now the real issue is the performance most of the calculations are being done on the cpu instead of the gpu which what makes the shaders using EditableImage have terrible performance

2 Likes