   Best performing LoD algorithm
  I need a good dynamic LoD algorithm to use in a terrain editor. Gotta be dynamic since nothing is constant in my world :P Another thing I'm interested to learn more about is how to implement decals on a terrain that change its LoD.[Edited by - DanielH on August 7, 2006 12:42:28 AM]
  Whats a "deals"?Try out the ROAM algorithm if you want a good starting point. Lots of other algorithms were inspired by ROAM so it will do you good to understand how it works before moving on to more complex ones like SOAR...http://www.llnl.gov/graphics/ROAM/   ;  Long time since I read about ROAM, but doesn't that rely on precomputed error data? Since it's an editor it will be kinda hard to use that algo. Perhaps I'm wrong though. Also, my terrain is already built in a quadtree. Each patch is 33x33 vertices.   ;Quote:Original post by DanielHI need a good dynamic LoD algorithm to use in a terrain editor. Gotta be dynamic since nothing is constant in my world :P Another thing I'm interested to learn more about is how to implement deals on a terrain that change its LoD.Do you mean decals instead of deals?Paul.   ;  I also want to add that my editor is using multiple viewports. I suppose that totally eliminates the possibility to use ROAM since it would mean I have to store a binary triangle tree for each viewport? Perhaps I'm wrong aout that aswell, I don't really know. Perhaps every kind of LoD algo will force me to keep some kind of data structure for each viewport?   ;  I'm not sure why people continue to recommend using ROAM. In general, it is rarely the best choice. The major disadvantage of ROAM is that you have to use dynamic vertex buffers and rebuild them ever frame. However, in your case, if the terrain is changing every frame, you would have to do that anyway, so maybe it isn't a bad suggestion.If your terrain geometry doesn't change much, then an algorithm that uses static buffers is usually a better choice. You mentioned that your terrain data is in a quadtree structure, so chunked LOD might be the best choice because it is based on quadtrees. However, geomipmapping is easier to implement.You will probably have to store some state information per view regardless of the algorithm, but I don't think that will be a problem.;  I wouldn't say my terrain is that dynamic, thal it'll change every frame. The vertex buffer only updates when the terrain is raised and lowered by the user. Most of the time it's just a static mesh. Is there any good resources on chunk lod and geomipmapping?   ;  I've spent several hours now reading on vterrain.org. I think that geomipmapping will be the best choice for this project. SOAR seems nice aswell, but since I already have my quadtree up and running I feel it's easier to go with the more simple technique mipmapping. One thing I wonder is how, or if it's possible to generate a single trianglestrip for a patch. I don't want to use a trianglestrip + one trianglefan for each side that has a LoD differance. Anyone solevd this before?   ;  Degenerate triangles, duplicate a couple of vertices to make zero-area triangles and adjust the strip until you're on the next row. A tip is to flip the diagonal ("hypothenuse" if the triangles are projected straight down and you got a uniform grid) of the triangles for every new row, the terrain looks funky if all diagonals point in the same direction.   ;Quote:Original post by coelurusDegenerate triangles, duplicate a couple of vertices to make zero-area triangles and adjust the strip until you're on the next row. A tip is to flip the diagonal ("hypothenuse" if the triangles are projected straight down and you got a uniform grid) of the triangles for every new row, the terrain looks funky if all diagonals point in the same direction.Sounds pretty much what I'm doing right now without any LoD algo. But since i need to lower the LoD level on the edges that borders to lower lod level patches I need to figure out some nice little formula to generate a single tri-strip for the whole patch. I don't want to hardcode all 17 diffrent setups ;)   