Voxel Optimization

My project involves the use of voxels, however, the game I am creating will involve shapes that are simple, but not necessarily always shaped like boxes. Therefore, I am wondering how best to optimize this. I have just started working with JME3, but I want to make sure the code I am creating runs as best as I can possibly make it. Currently, I am rendering around 10000 box meshes. I haven’t implemented a texture on any of them yet, however, the user will have the ability to modify the shape and texture of any mesh in real time.

I am wondering what the effectiveness of GeometryBatchFactory optimization is, as well as the effectiveness of BatchNode rendering. In simple terms, I noted that the GeometryBatchFactory removes all the children in the node and replaces it with one.(at least in my simple case). I take it this means the voxels in the node are no longer able to be edited by the user. Is this true? This is not true with BatchNode rendering, as all children are maintained. I take it to mean that the voxels in the node can be edited. Is this true?

I read this article which showcases a great way of rendering shapes. Is this essentially what these methods are doing?

I have done a lot of research up to this point, however, I am just looking for additional information to make my system run as effectively as possible. There is a lot of googling that I have done, but there is tons of information to sort through. Any information is greatly appreciated.

If you want to make a block world type game then you will end up creating your own meshes. That’s just a plain fact.

There are examples already on the forum that you can look at. It’s a well worn topic. Adding additional shapes complicates it but not much once you’re over the initial hurdle.

Edit: PS: block worlds are not made of boxes.

Thanks for the reply! So even with the techniques like Batch Node rendering, I still need to create something like what is shown in the link I provided?

Somebody already went to the trouble for you.