Question to those of you who implemented a procedural terrain, maybe even in Unity3D.
In my Unity implementation I got the circular artefacts eleminated, and also a problem that the planet was culled away when the center was not in the camera frustum. Basically things go very well. I can now start work to optimize it for being close to the surface. Hurray 
While things go pretty well when being in orbit, problems occur as expected
when going down to the terrain. The earth is right now rendered in full scale, so 6371000 meter sphere radius.
There are two major issues I try to get under control
Problem a) Keep the number of triangles under control. Right now I render 32x32 vertices-planes and a quadtree until depth 20. I use a LODSphere approach by NavyFish to define the required LOD while recursively going down the quadtrees. During parsing the quadtree down I check if something can be splitted or merged (I put these nodes in a split or merge queue then that is worked on after the quadtree traversing has finished) I do a
- Plane Volume check (check if the camera is within the spaned volume of a plane
- Horizon Culling check
- Frustum Culling check (well, very roughly, lacking a good strategy in Unity, it only checks if an object is behind the camera, but not if its within the frustum)
I do each check for the current quadtree node and its parent. If for example both nodes are occluded, I merge to the parent node, until the parent is not occluded or the root node is reached. So there is always a full sphere rendered, but if a section is totally occluded (e.g. the backside of the planet), its rendered at 32x32 vertices. Unfortunately I have no chance to get below 7-16M triangles.
What culling strategies do you use to keep the number of triangles low? One problem of mine could be that the level of detail currenty fully depends on the number of vertices rendered. Probably texturing or moving away from per-vertex-normals (need to review some of your posts) could help to detail out the terrain while keeping the number of triangles low?
PS: Culling checks on CPU is really bad if you dont have the terrain height information (the noise) on the GPU 
Problem b) Light see-through/Z-Fighting when close to the surface. I get heaviest Z-Fighting when I go close to the surface, there is bad âsee-throughâ going on.
EDIT 2:
Problem b) Light seethrough solved. For everyone having the same problem, you need to make sure that you have shadowing enabled for your light source. Otherwise it can pass objects and you can see structures behind the foreground. Now as that this (shadowing enabled) can lead to heavy problems when using a point light in a certain distance (Unity will warn you, or throw the evil ânotNormalized(normal)â), it is better to switch to a âDirectional Lightâ lightsource. Which should be fairly similar to a sun lightsource in space, as the light rays would reach the earth close to parallel due to the distance.
I recorded a video of the current state. While leaving the planet again, I noiced there is still a bug as some part of the planet didnt merge back to low LOD. But it looked so beautiful that I needed to keep recording and take a separate picture 
Anyway, as now culling is crucial, any hint on your strategies to increase performance (with culling or anything else) and thus allow additional terraindetail is very much appreciated!


Like a practise in shader coding under Unity.
Space Engine is really upfront, nothing gets over it when it comes to procedural space content generation (not even I:B).