N-Patches for Terrain LOD Question submitted by (09 January 2002) Return to The Archives
 Hi, guys! Is somebody there who can help me ? (I apoligise, my english is probably awful, but I hope you'll be able to understand me)I plan to implement a simple terrain rendering engine in my spare time with DirectX 8. My idea is to use n-patches for terrain LOD generation. Now, be patient and let me explain what is my problem:Ok, let's say I know how to load a gray-scale bitmap from a file, generate a terrain mesh from it, and compute a quadtree for my visibility detection algorithm. My problem is how to produce various terrain LOD according to the distance from the camera using n-patches. An obvious solution is for every visible quadtree leaf to determine it's distance to the observer and then compute the tesslation amount (number of segments) for that node, using a formula like this:NumSegments = ((MaxDistance - Distance) * MaxSegments + (Distance - MinDistance) * MinSegments) / (MaxDistance - MinDistance),where:Distance - the distance from the quadtree node to the camera, MinDistance - the distance to the near plane of my view frustum; MaxDistance - the distance to the far plane of my view frustum; MinSegments - the number of segments at the farthest distance; MaxSegments - the number of segments at the nearest distance.Probably the formula is not correct, but I hope you've got the main idea. So, my problem is: when rendering adjacent n-patches tesslated with different number of segments it's most likely to have noticeable seams between them, but I really have no idea how to avoid these seams. May be there is a better solution than mine. Have you got any ideas?Thank you for any suggestions and ideas!