Plan 'Merging' together (April 2013)
While I knew in my head I'd be able to come up with a simple solution to merging the patches, I didn't imagine I'd be able to solve it with such little effort, and so soon after fixing my noise issues too!
The cracks aren't 100% gone. But they are drastically reduced, enough for this project.
I wanted to take advantage of DirectX 11's tessellation stage's feature where you can assign a different amount of detail for a tessellated patch's edges to the centre detail.
So I knew it should be possible to make the edges of my level of detail seamless.
My first attempt was where I acknowledged that each level of detail essentially doubles the edge detail. So if an edge had 32 vertices, the next level of detail would make the edge have 64 vertices. As the two neighbouring patches aren't connected, these edges are opened up to cracks. So I simply came up with an algorithm that halved the outer edges of the child patches.
However, this only solved the issue for the "best case scenario" and I'd overlooked the typical scenario. As shown in a previous post, there were moments where a patch may have neighbouring patches of different levels of detail. As each edge can only have a single value of detail, I knew it was down to the child patches to make the edges seamless.
Of course, merging LOD is a solved issue, however I wished to come up with a less complex method that worked with my current set up. I wanted to try to do it without having to traverse my quadtree structure more than once, as that would considerably slow down my application.
Fortunately, I managed to do just that.
As the picture shows, the edges of each patch merge seamlessly into the surrounding patches.
However, this technique is limited. To conserve the amount of vertices on an edge means that eventually a patch edge will have a detail of 1 (the smallest possible) and so further levels of detail with result in the possibility of cracks. However, they're drastically reduced in size and much rarer.
To maximize the guaranteed crack free levels of detail, the edge is set to have the maximum number of vertices (64) which means that there can be up to 7 seamless levels of detail.
These next pictures aim to give a sense of the difference this merging technique makes
without the method:
with the method:
The only technical thing really left to do is implement a clipping technique that reduces the amount of patches rendered, namely frustum culling.













