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

This is simply amazing. Opens up so many more things you can do in the Engine, I’m so hyped for when this does come out!

3 Likes

Less go!!!


2 Likes

@FGmm_r2

I can not modify the textures that are on Humanoid related things

4 Likes

Good question! But have you tried adjusting the transparency of the surface? I believe the reason is that textures from surface appearence are basically overlaying colors, but remember that with this update you can also edit the colors of images! Good luck!!

4 Likes

I tried to make a mirror with EditableImage. Here is how it looks:


Before EditalbeImage, i used many Decals that were positioned in a 2D Grid and just changed their colors, which was bad for performance, but with the new EditableImage i was able to get around 40 FPS on 128x128 resolution (only half of the resolution is updated per frame). If we would use only 64x64 textures (or updated only quarter of resolution) and if there was a way to apply blur to it without sacrificing performance, then maybe it could be use in games. What do you guys think?

23 Likes

Rather, it does not overlap, but overwrites the texture. Because if you use EditableImage there are no such problems.

SurfaceAppearance

EditableImage

The only problem is that if you use EditableImage instead of SurfaceApperance there will be serious performance issues.

[Edit]
I figured out how to fix it. You need to fill in the MeshId and only then the TextureId will work. But it still looks unfinished.

6 Likes

is this why my meshes are invisible in studio?

2 Likes

Not sure what you mean, but I have the same issue! After adding a EditableMesh to a MeshPart it won’t be visible, but EditableImages work fine.

2 Likes

I wonder if we will get texture filtering options, like:

EditableImage.FilterType = Enum.TextureFilter.Nearest
EditableImage.FilterType = Enum.TextureFilter.Linear
EditableImage.FilterType = Enum.TextureFilter.Bilinear
EditableImage.FilterType = Enum.TextureFilter.Trilinear
10 Likes

I think I found a bug.

I drew a 300x300 white rectangle, and when I rotate it, it slowly shrinks and becomes transparent, lol.

8 Likes

How did you guys get the editable mesh to work? I have the beta feature enabled, but the vertices I add to the editable mesh doesn’t show up. I set the parent to a mesh part and still it doesn’t show up.

5 Likes

I found that creating a new editable mesh through a script and immediately parenting it to a MeshPart works. For some reason though, if i drag it in through workspace, nothing will happen.

A simple Instance.new(“EditableMesh”, workspace.MeshPart) should do the trick, and anything else can be put after, such as creating new vertices, and creating triangles or setting UV coordinates.

Just incase though, I would reparent it again. I haven’t tested if it does anything though.

4 Likes

I am very happy about the EditableMesh and EditableImage APIs. They’re fantastic for dynamic wave simulations, solving challenges like real-time tessellation. However, GPU support is crucial, especially for FFT calculations in ocean simulations. Examples of stunning Fast Fourier Transformation oceans showcase the potential impact on visuals and performance. The ability to create normal maps in real-time using EditableImage is promising, but integrating them into a surface appearance is a current limitation. GPU utilization for image calculations would be a game-changer, offering immense possibilities for creative expression. Looking forward to future developments!

Highlighted is an FFT ocean example, emphasizing the immediate need for GPU acceleration. CPU FFT ocean simulations run at 0.2 to 0.8 seconds per frame, even at minimal resolutions.

17 Likes

I want to point something out to the Roblox devs about this update. The original announcement makes it sound like the intention here was to allow users to edit meshes on the client side, then have those meshes fed through moderation… But note… No one in this thread is using this API in this way. They are using it exactly like any other game engine would use meshes and UVs. Roblox devs need triangle support like this to publish better games. That’s not “let the client modify a mesh to their desire” stuff. That’s LET MY SERVER FEED YOU PROGRAMMATIC MESHES stuff. For example, Planet Oof uses a planet composed of triangles generated procedurally as a landscape. This is a very powerful tool without client editing.

Stop trying to moderate server to client meshes when there’s no client interaction involved in most cases. Just moderate the GAME in those cases.

9 Likes

How were you able to do that? I can’t get EditableMesh to even create 1 triangle.

4 Likes

Make sure you look from all sides, as only one side is visible. Make sure you parent it to a meshpart and make sure you anchor the meshpart. :slight_smile:

Oh, and if you want it to not be completely distorted, set the size of the meshpart to (1,1,1).

5 Likes

I guess it’s time to start working on that rasterizer again…

2 Likes

Very cool! I’ve been looking forward to something like this on roblox. One thing though, will you be able to edit EditableImage’s/paint’s transparency?

3 Likes

This opens up so many possibilities. One thing I wish would be added is EditableImages to work with ViewportFrames and CanvasGroups (only have ReadPixels)

2 Likes

This is a huge step forward! Can’t wait to play around with it.

2 Likes