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

Materials (and MaterialVariants) do not work on EditableMesh for some reason.

Also, this may be out of scope for the EditableMesh feature but it would be cool if materials could be applied at the vertex / triangle level.

2 Likes

I am also running into this issue.

Yes. Roblox team, when will this come out for games and when will server-to-client replication come out everywhere? To me it seems like the feature (or at least EditableImage, which doesnā€™t seem to have any bugs really) is mostly okay for release (other than needing server-to-client replication) but has a few small bugs. @monsterjunjun @TheGamer101 @FGmm_r2

4 Likes

We have used this technology for our global earth game which has got the whole digital copy of earth. Wedges cause a lot of lag so we need an ETA for this so we can also give our communities and estimated release date for the game.

Awesome! Now we just need the ability to create custom shaders like other major engines, compute shaders included. (Not sure what the technical limitations would be across platforms but Iā€™m sure thereā€™s a way to streamline it somehow?)

This was a fake image spread by some twitter account.

Yeah, I later found out that the YouTube account behind that post is a fake account.

We canā€™t give a reliable ETA at this stage, but our best guess is likely sometime in the second half of this year. I wish we could be more specific, but thereā€™s still too many variables for us to do that in honesty. Itā€™s obviously crazy, new first-in-class functionality for Roblox, and thereā€™s a lot of axes to the problem.

Our team is working hard to make this available as soon as possible, and it is a high priority project. Itā€™s hard for us to wait too.

Some upcoming technical changes to watch for Soon :tm::

  • Weā€™re working on an overhaul of the APIs for normals, UVs, and other vertex attributes.
  • We want to enable multiple multiple Parts to share the same EditableImage texture, etc. This will change how they are referenced significantly, probably using new reference properties.

Thereā€™s also a number of hard problems weā€™re working on around permissions, safety, and policy. Weā€™ll share when we can soon. Things are shaping up, but thereā€™s still a lot to do.

Keep an eye on the Creator Roadmap for any official ETA updates.

11 Likes

When will CreateMeshPartAsync be enabled? I understand if itā€™s not enabled on the server due to replication and safety issues, but I donā€™t understand why it canā€™t be usable on the client?

It looks like the DataModelMesh Tree isnā€™t friendly with EditableMesh. When I tried to set EditableMesh inside SpecialMesh, it didnā€™t work. It still appears as MeshID that DataModelMesh is applying to. I canā€™t use Instance.new(ā€œMeshPartā€) either, because MeshPart Forces Texture To Checkerboard Pattern if MeshPart.MeshId is not set, and MeshPart.MeshId is locked. I canā€™t use CreateMeshPartAsync, because itā€™s studio only. Thereā€™s no known workaround that is only generated from the script, as it requires pre-initialized MeshPart to get this working. Itā€™s impossible to create EditableMesh from the script without anything referring to MeshPart.

Although this kind of information may seem too ambiguous to be worthy of an announcement, its significant, and I commend the transparency. Thank you!

1 Like

Sadly, we arenā€™t planning to enable EditableMesh.CreateMeshPartAsync at runtime before we can support replication, so itā€™ll take a long time. Without replication it would result in mostly broken and buggy usage. I really wanted it to happen sooner, but it would be exceptionally hard to use correctly at this stage.

Locally created parts arenā€™t something we have ever first-class supported, and it they easily break things like streaming and physics replication that rely on consistency. The only people I know that can do this without it breaking constantly have coincidentally all had source code access at some point. I still want to find a way to make it possible sooner, but donā€™t hold your breathā€¦

Weā€™re going to focus on making sure you can do any kind of pre-publish visual preview you need to with EditableMesh itself.

We would like to enable support in Studio, similar to CSG where the mesh publishing is deferred until later, like when the place or model is published. Weā€™ll see. Itā€™s lower priority.

1 Like

Weā€™re not planning for EditableMesh to support SpecialMesh or FileMesh. The legacy DataModelMeshes are effectively deprecated. They wonā€™t get any new feature set support, e.g. we intentionally disabled skinning support for them as well, even though it took extra code to disable it.

Only MeshPart and the Wrap* instances will be supported.

Will there be plans to optimize DynamicTextureManager::processPendingRequest I currently have 1000x1000 sized EditableImages inside a few SurfaceAppearence instances in which I store the entire model somewhere on the client. However, any time I clone the model, it appears DynamicTextureManager::processPendingRequest has to be called EVERY time? Will this be the case on release, or will there be optimizations implemented to reduce the processing time taken?

2 Likes

We have some plans to improve the potential for long frame times here. However, 1000x1000-sized EditableImages in SurfaceAppearances still might not be fast enough for real-time effects use cases.

I donā€™t think we will deduplicate EditableImage textures on the engine side as this would add some overhead, but we will be adding a way to allow multiple parts to share the same EditableImage, which would allow you to avoid cloning EditableImages in this case.

3 Likes

How to animate it vertices position?

Are there any plans to support using the buffer datatype for I/O operations on EditableMesh and EditableImage? I think itā€™d be much more performant to work with buffers instead.

7 Likes

Great, now we need to get a pixel from the client and everything will be complete

literally just came here to ask for this lol. i noticed that calls to add geometry and attribs to editablemesh were collectively taking up way too much time

Thanks for everyone that reported this bug - there was a culling issue in some cases when rendering newly created EditableMesh instances. This should be fixed, but if youā€™re still seeing it please let us know.

4 Likes