I am trying to create a plane that is procedurally generated at runtime and which I can then modify during the game. (Basically a little heightmap, with level data stored in a 100x100 array.)
I started using an ImmediateGeometry node, but I can't access or modify the vertices in the mesh, so every time I modify the array I have to regenerate the entire plane. If I modified every vertex every frame the FPS dropped to 7-10.
Then I tried using a MeshInstance node and SurfaceTool.new(), which seems to be more flexible, but it takes about 10 seconds to generate the 100x100 mesh! I also see that there is a MeshDataTool that appears to do a similar thing.
I am a bit bewildered by all the Godot 3D stuff. There seem to be 3 nodes for everything, but each one works in a different way and requires a different approach. What is best method for this situation?