Procedural quadtree mesh

I’m trying to implement planet rendering. Following this topic I got the main idea. So I need to generate a mesh with higher amount of polygons near player and lower amount further:

34505-mesh.jpg

This wiki article shows how to generate procedural mesh. However I can’t get how to modify this mesh on-fly. If I set new triangle array will this work effectively? Is there any caching system I could break?

Also I wonder how to apply different materials for different tiles? GeneratedMeshComponent allows just one material for the entire mesh. I have my terrain texture split onto squads: one for far plane, four for next level of detail, sixteen than and so on. I plan to have a base material and than instance it for every tile. How to apply them for GeneratedMeshComponent? Should I care about memory or the engine will perform optimization for me?

is it not a feature of LOD??