Hello! Example, I create square in Surface Tool, add Mesh Instance and add child in scene with the square. Question: How can I delete vertices with index 0? (I don't find this function in surface tool and another objects) Example of Code: var st = SurfaceTool.new() st.begin(Mesh.PRIMITIVE_TRIANGLES) st.add_vertex(Vector3(0, 0, 0)) st.add_vertex(Vector3(10, 0, 0)) st.add_vertex(Vector3(10, 0, 10)) st.add_vertex(Vector3(0, 0, 10)) st.add_index(0) st.add_index(1) st.add_index(2) st.add_index(3) st.add_index(0) st.add_index(1) var mesh = MeshInstance.new() mesh.mesh = st.commit() add_child(mesh)

As far as I know, you need to create a new SurfaceTool instance with the same data (except the vertex you wish to remove). SurfaceTool isn't meant to be used for meshes that change frequently.

I know, what i can create SurfaceTool without that vertex, but i need change vertex in mesh. Maybe, does Godot have class with the function?

Maybe you could use the MeshDataTool? It doesn't seem to have anything for removing vertices though, but you could perhaps use the data from the MeshDataTool to get all of the vertices, remove the one you do not want, and then remake the mesh using the SurfaceTool. Performance might be a bit slow doing it this way though.

I understand now, what vanilla Godot don't have object with the function. Well, I try to create plugin with SurfaceTool with the function on GDNative C++ XD

I have very much vertex and if i will use these methods, I get 1 fps XD

ImmediateGeometry is the class that's meant to be used for geometry that changes every frame, but it's currently very slow if you have hundreds of vertices or more.

a year later