One last thing to add on. What if voxels were only editable when something was interacting with them? Otherwise they would be uneditable. Basically what i'm trying to say is that what if objects could be switched from dynamic to static depending on what could be interacted with by the player at that time? .I'm sure it would be insanely difficult to program something like that but if someone did manage this, would that not reduce lag significantly while allowing the world to still be destructible? Or is something like that impossible, or wouldn't make as much of a difference as i think?
Also thank you for answering my questions. It means a lot to me and was very helpful in my research about voxels.
Your solution is quite vague, and doesn't really translate very well at least from where I'm sitting, most pre-processing that game engines run on maps and model data take a lot of time, minutes or possibly hours for a decent size of data, it also depends on what needs to be calculated.
In the end the way that MC does it isn't a bad idea, breaking the world up into reasonably sized chunks, and then batching them, and rebuilding each chunk on change. is it the best solution? There's probably better ways of working with voxels, but any given solution comes with its own challenges, for instance one storage method might make face generation faster and make collision trivial, but cause issues for things like lightning or other system simulations.
Software tends to be complicated, and games and rendering are certainly no exception.