Hey Marvin
Thank you very much for the new Terrain implementation. It works just great

.
Tanks, but that's not my credit. It's not a new implementation, I just made a new test case of the original terrain code to help me debugging. Unforunately it works not as great as I hoped. There are cracks in the landscape and there is some strange behaviour when the height settings are changed.
What would you think about further abstraction? Then it would be imaginable to load the Terrain by simply doing
Terrain terrain = new Terrain( myTerrainURL );
The Terrain instance would then provide a method render(View) or update(View) or render/update(Tuple3f), which is called before the next frame and could even be managed automagically by a ScheduledOperation.
That's the goal. The terrain should be as simple as possible to handle. I see your proposed Terrain class as an additional utility class to hide the underlying complexity.
The Terrain class then provides a method called getHeightMap() to retrieve the height map.
Wouldn't this be much simpler than implementing the TerrainRenderInterface? I don't know, if it can be abstracted at this level or if it isn't that common. I don't know if one would loose possibilities, if it was abstracted that way.
I am not exactly sure which role the TerrainRenderInterface plays in the CLOD algorithm. I have to investigate further to answer that question. On the other hand I like for example the TerrainSampleInterface as an abstraction where to get the height data, so you can use procedural height map generation as well as reading a map.
I think we can archive both, flexibility and simplicity of the terrain implementation, if we follow the interface path like it is now for the base implementation (as far as it is sensible) and provide a higher level AbstractTerrain utility class that could be easily extended to fully utilizy the terrain features.
Ideally there should be a provided HeightMapTerrain implementation which follows your suggestion:
HeightMapTerrain terrain = new HeightMapTerrain( myTerrainURL );
to make things as simple as possible for the user.
On the sad side of things, I don't think this get's finished for the next release, so don't advertise with this feature to much:/
Thanks for the suggestions!
Marvin