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

Are we going to be able to edit/generate tangents and binormals?

I’d love to use EditableMesh with PBR/SurfaceAppearance for one of my projects, but it’s not possible right now due to it not having these

2 Likes

^^
A :Clear method would be amazing. It existed before!!

1 Like

Its a good change but could be better. Like the improvements but i would love to have is the vertex IDs match with their corresponding face, normal, uv and color id for simplicity. It would be also nice if its 0 based indexing instead of the current indexing.

Overall i find similarities to OpenGL API which can be very difficult to grasp but this improves performance and “creativity”

Am I missing something or is the biggest missing piece of the Editable Mesh system the inability to turn can collide/collisions and physics on? I want to generate structures with them but I can’t. :confused:

Please tell me if I am missing something or if anyone else agrees. Thanks

1 Like

The current behavior from what I’m seeing is that, whenever I get the UVs of a pre-existing mesh (just to get the UV’s associated ID), When I set the UV, It seems to inherit the UV’s that the pre-existing mesh had with it.

This is the original video of how it was working back in February, which is the intended behavior:

And this is the effect now

I’m worried that there’s not gonna be any support for editing individual verts in the future without having to get the associated face, or that it’s going to be meant for only making new meshes and not altering pre-existing ones.

2 Likes

About 3 months ago, I made a module called “Mesh4D” that slices 4D shapes into 3D shapes using editable mesh. I recently realized that the module works differently than before and found out that there was an update 5 days ago…

Is this a bug? Why are weird shadows forming? (Doublesided property is on)

1 Like

Is there any chance we’ll be seeing the Editable Image instance override textures for Particle Emitters or Beams? I would really enjoy working on a plugin tool to edit textures and seeing the changes live without having to use AssetService / saving the asset as a new ID every time I wanna see how it looks

This is a very very simple prototype I made in a few minutes just to mess with the API but if Particle Emitters and Beams get support and we’re also provided with a simpler way to export Editable Images I’d go full effort to make a plugin to quickly edit textures with various tools that might eliminate the need to go to external programs for smaller adjustments

5 Likes

Correct, the only methods to remove topology is RemoveFace (which removes the given face) and RemoveUnused (which removes all vertices, normals, colors, and uvs that don’t appear in any face). It sounds like it would be useful to remove a single vertex?

No current plan to add this. What is your use case for this? Would you expect it to be exactly equal, or equal to within some tolerance?

There’s no current plan to allow editing tangents and bitangents, but we are currently working on recomputing those automatically so normal maps work (as long as UVs are specified)

At the lowest levels, there is now another level of indirection. Previously the attributes were directly stored on the vertex. Now the face stores a list of vertices, along with attribute ids for each vertex. The most common case is to have the same attribute ids for all faces on a given vertex, which is how we create attributes with AddTriangle. We’re looking at convenience methods to get/set attributes on a vertex, since that is such a common use case, but wanted to get the essential API out first.

If you can privately DM me an rbxl file, I will take a look. This UV cycling should be possible to accomplish with the new API.

That does look like a bug. The automatic normals are being calculated with a new code path, so it’s possible that that code needs some fixes. If it’s possible for you to send a repro file, that would be much appreciated.

then maybe put your marketing schemes aside and allow for pc-only games to have less restrictions?
because there’re definitely teams that only want studio for its pc use. I personally can’t see myself adding mobile compatibility to 50% of my projects because they’re just suited for pc. That’s like trying to get ultrakill on mobile

2 Likes

One thing I’ve noticed in the latest update is that when you start getting long triangles, you can develop a strange specular aspect to the colors. This is using color blending (I’m blending from white on the bottom to yellow at the top). The same algorithm doesn’t produce the metallic sheen with shorter triangles. And it doesn’t anyways do it.

No current plan to add this. What is your use case for this? Would you expect it to be exactly equal, or equal to within some tolerance?

I’m making a voxel game, and when implementing a :DeleteBlock function, id have to find the vertices that compose that block. The easiest would be a GetVertexAtPosition function. alternatively i would have to store all the vertices used. This would likely add overhead, as im guessing internally editable meshes already have a correlation between vertex id and position?

1 Like

Okay unrelated on some level but while we are already talking about low end android devices, why are you still supporting them? 2GB is insanely limited, alongside you STILL SUPPORTING OpenGL ES 2.0 on android after it has been said that it has been deprecated, yet its still functional in the engine and is STILL holding you back from progressing at all on graphical features.

I talked to a rendering engineer at RDC and they clearly told me that the majority of features are held back by this exact graphics API. Which confused me because I thought you had deprecated it? Turns out you didn’t and its still in the engine for some reason?

It being still in the engine has had so many feature requests left ignored and scrapped:

  • Deferred Decals (scrapped because of GL ES 2.0 missing a critical feature that was present in GL ES 3)
  • Emission Maps (Apparently this is because of texture compression, which i don’t understand because ECT1, ECT2 and DXT5 all have 0 difference if you add 1 extra channel to a image that is currently unused??)
  • More Post Processing Effects

Its literally 17 years old, please just let go, there has to be a certain point where you just can’t continue supporting these sort of users, its actively hurting the creativity and freedom of the developers who want to make something more than just a simple Obby game.

I’m not asking for Unreal Engine 5 level of fidelity, no. Instead I really just want to have more control over what the engine is doing instead of having nearly 0 control over things and I think a lot of developers here agree with me.

Hey tabby0x. I updated the other thread https://devforum.roblox.com/t/roblox-needs-to-drop-support-for-opengl-es-20-and-require-opengl-es-30-as-the-minimum-for-mobile/3167041

but to clarify, OpenGL ES 2.0 is not the reason these features are held back.
Many newer but cheaper phones support modern graphics APIs but still have limited memory (among other limitations).

3 Likes

It is possible to create triangles with Vector3s that are made up of nan values. Doing this causes issues with all meshes that are rendered on screen, including unrelated MeshParts.

local nanVector = Vector3.new(0/0, 0/0, 0/0) -- Vector made up of NaN values.
local part = Instance.new("MeshPart", workspace) -- New mesh part.
local mesh = Instance.new("EditableMesh", part) -- EditableMesh.
mesh:AddTriangle(
    mesh:AddVertex(nanVector),  -- X
    mesh:AddVertex(nanVector),  -- Y
    mesh:AddVertex(nanVector)   -- Z
)

in my use case, the remove face works fine as a replacement, but I do think we should still have the option to remove a single vertex

Shiny triangles seems to happen whenever the triangles get narrow. Here’s an example of edge fans around some polygons. When the triangles are wide, like say a plain hexagon, there’s no shiny. When they get narrower, you get randomly shiny triangles. This is why colors for all the vertices set to Color3.new(1,1,1).

1 Like

Sorry:
This is WITH colors for all the vertices set to Color3.new(1,1,1)

why did the functions need to changed like this? being unable to properly clear vertexes made my voxel renderer create some artifacts when destroying blocks by attaching vertexes with neighboring blocks and causes random crashes after a while (Yes I do use the new function that clears “unused vertexes and triangles”)

the code became even more bloated and redundant and the documentation is very subpar and doesn’t explain most of these new functions properly

1 Like

Hey. There is issue with mesh position.

local part=script.Parent
local mesh=Instance.new('EditableMesh')
mesh.Parent=part
local v1=mesh:AddVertex(part.v1.Position)
local v2=mesh:AddVertex(part.v2.Position)
local v3=mesh:AddVertex(part.v3.Position)
mesh:AddTriangle(v1,v2,v3)
part.Parent=workspace

v1,v2,v3 are red blocks but it looks like it doesn’t works correctly

Has anyone else been getting this error? It started happening to me perhaps a week before this post was made. None of my EditableMeshes work any more. I acknowledge in OP post it mentions code may need to be updated, but I’m not entirely sure what I’m doing wrong ^^’

image
from code
image