- Edited
Afaik this has no easy solution in the engine.
For larger terrain one would have to make an extension (in C++) that modifies the terrain surface, performs dynamic loading and unloading of terrain, collisions etc. This would be too slow to do in GDscript.
2 LOD levels are not enough, something that keeps the number of triangles per screen area roughly equal, and moves with the camera, and loads and unloads parts of the terrain as the player moves. Also, it shouldn't copy terrain data for LOD levels (like for example mip maps) but work with and adapt the highest detail level on the flight. Memory is the limiting element here, even with just 16bit per point of terrain on the map we're talking about many gigabytes for large terrains.
There are several well thought through terrain LOD systems, I am a fan of cdlod. I do have the core of such an LOD system. But I am unsure if I can integrate it in the engine's scene tree, which I may tackle once 4.0 is done.