Sign in to follow this  

Terrain Vertex Tweening, etc.

This topic is 3587 days old which is more than the 365 day threshold we allow for new replies. Please post a new topic.

If you intended to correct an error in the post then please contact us.

Recommended Posts

In Terrain Geomorphing in the Vertex Shader, Daniel Wagner presents a method for tweening between GeoMipMap LODs. He presents the following formula for calculating the blending factor of those vertices that lie between the edge and inner vertices: tweeningA = (1.0-tweeningL) * tweeningI, so: I've tried very hard to understand why such a formula should work, without success. When I plug numbers into the formula and draw them on top of the above image, I get results such as these, where the red circle represents the value obtained and the center of the blue line represents where the vertex should lie: Is there something I've failed to consider in Wagner's article that would make it work? I've tried to come up with various alternatives to the morphing problem, so far without success. I'm starting to think perhaps I should create terrains using hand-modeled sections. Aside from Dungeon Siege, are there any other games known to approach terrain in such a way? I'm not satisfied with the GDC paper on Dungeon Siege's terrain system. I don't like the the "no world space" notion, and besides I can't tell what they mean when they say they "render the nodes right on top of each other" instead of stitching them together. I hate terrain.

Share this post


Link to post
Share on other sites
This article uses a very complicated way of doing geomorphing, because the neightbouring tiles are taken in consideration. You can do geomorphing only on the vertical coordinate wich is much easy to implement. You have a number of examples on how that can be done. The best article that i have read is hosted on www.terrain.dk and the results are pretty good (they use a variation of chunked lod).

Share this post


Link to post
Share on other sites
How can you do terrain geomorphing without taking neighboring tiles into account? After all, if a terrain chunk C should lose a relatively tall vertex while its neighbor N still contains that vertex, there would be a noticeable hole between the meshes if chunk N's edge vertices were not adjusted to match C.

Which of the papers on terrain.dk are you referring to in your post? Is it Thatcher Ulrich's chunked LOD paper? I know he uses skirts to hide any gaps between tiles, but so far I've been assuming it wouldn't be enough to conceal the above condition.

Share this post


Link to post
Share on other sites
Quote:
Original post by chronos
How can you do terrain geomorphing without taking neighboring tiles into account? After all, if a terrain chunk C should lose a relatively tall vertex while its neighbor N still contains that vertex, there would be a noticeable hole between the meshes if chunk N's edge vertices were not adjusted to match C.

Which of the papers on terrain.dk are you referring to in your post? Is it Thatcher Ulrich's chunked LOD paper? I know it uses skirts to hide any gaps between tiles, but so far I've been assuming it wouldn't be enough to conceal the above condition.


I'm refering to the main paper of the site http://www.terrain.dk/terrain.pdf. It's possible to conceal all the gaps with skirts, one simple (but slow) way is to give the smallest heighfield size to all the skirts. That will cover any crack that can appear. I'm saying that is slow because if the skirt is too big it will eat all your fill rate. The trick is to make it long enough to cover any possible error. To do that you have to use the geometric error value of the tile. That's wat the authors of the article do.

Share this post


Link to post
Share on other sites
Quote:
Original post by chronos
How can you do terrain geomorphing without taking neighboring tiles into account? After all, if a terrain chunk C should lose a relatively tall vertex while its neighbor N still contains that vertex, there would be a noticeable hole between the meshes if chunk N's edge vertices were not adjusted to match C.

Which of the papers on terrain.dk are you referring to in your post? Is it Thatcher Ulrich's chunked LOD paper? I know it uses skirts to hide any gaps between tiles, but so far I've been assuming it wouldn't be enough to conceal the above condition.


I'm refering to the main paper of the site http://www.terrain.dk/terrain.pdf. It's possible to conceal all the gaps with skirts, one simple (but slow) way is to give the smallest heighfield size to all the skirts. That will cover any crack that can appear. I'm saying that is slow because if the skirt is too big it will eat all your fill rate. The trick is to make it long enough to cover any possible error. To do that you have to use the geometric error value of the tile. That's wat the authors of the article do.

Share this post


Link to post
Share on other sites
Thanks for the info, Ivo. I'll check out the paper you've suggested.

I'm a little reluctant to employ something like Chunked LOD, because it doesn't lend itself very well to texture splatting. I'm not sure I want to use a texture quadtree for the textures, due to the memory requirements. On the other hand, splatting doesn't look as good as the full unique texturing you can get with a texture quadtree, so perhaps it's worth the tradeoff?

Share this post


Link to post
Share on other sites
You have to remember that tweeningA is just one of the 9 tweening factors that determine
the final position of A.

"Summing this up we result in having have 9 tessellation levels which must all be combined every frame for each vertex. What we actually do in order to calculate the final position of a vertex is the following:

PosFinal = PosBase + tweeningI*dI + tweeningL*dL + tweeningR*dR + tweeningT*dT + …"

Share this post


Link to post
Share on other sites

This topic is 3587 days old which is more than the 365 day threshold we allow for new replies. Please post a new topic.

If you intended to correct an error in the post then please contact us.

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

Sign in to follow this