Consider an huge terrain that has a lot polygons, to render this terrain I thought of following techniques:
- Using height-map instead of raw meshes: Yes, but I want to create a lot of caves and stuff that simply wont work with height-maps.
- Using voxels: Yes, but I think that this would be to much since I don't even want to support changing terrain..
- Split into multiple chunks and do some sort of LOD with the mesh: Yes, but how would I do that? Tessellation usually creates more detail not less.
- Precompute the same mesh in lower poly version (like Mudbox does) and depending on the distance it renders one of these meshes: Graphic memory is limited and uploading only the chunks won't solve that problem since the traffic would be too high.
IMO the last one sounds really good, but imagine the following process:
- Upload and render the chunks depending on the current player position. [No problem]
- Player will walk straight forward
- Now we maybe have to change on of the low poly chunk with the high poly one
- So, Remove the low poly chunk and load the high poly chunk [Already to much traffic here, I think]
I am not very experienced in graphic programming and maybe the upper process is totally okay but somehow I think it is too much.
And how about the disk space it would require.. I think 3 kind of levels would be fine but isn't that also too much?
(I am using OpenGL but I don't think that this is important)