Archived

This topic is now archived and is closed to further replies.

ROAM paper question (was dynamic terrain algorithm?)

This topic is 5742 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

Hello, I've been doing some reading on terrain creation algorithms and they all seem to be very good at setting up and then viewing a static area of space, like some rolling hills. I need to constantly update a large portion of terrain in the form of a massive lava pit which boils and rolls with bursting pockets sloshing splashes and lava waves. Is there any good algorithms out there for something like this? Or are standard terrain algorithms ok and I am just reading them wrong? TIA for any replies, A Edited by - archon on March 19, 2002 5:02:26 PM

Share this post


Link to post
Share on other sites
i''d check out some water demos/tutorials.


------------------------------------------------------------
Email
Website

"If you try and don''t succeed, destroy all evidence that you tried."
------------------------------------------------------------

Share this post


Link to post
Share on other sites
I want to be able to send a wave through the lava, so I guess I want an algorithm that can update the vertices of the surface quickly.

The problem I'm having now is I'm using a basic pattern of quads covering an area, and when I try and send a sine wave through the heights of the vertices are raised and lowered disproportiantely to each other, so intead of a smooth curve I'm getting jagged peaks and canyons.



So the problem is the quads are stretching, instead of bending, which is to be expected I suppose. Anyway, Nehe's lesson 11 tutorial on a flag waving effect should be some help, and I'm taking a look at ROAM, though I don't know if I want to....





[edited by - archon on March 19, 2002 11:27:47 AM]

Share this post


Link to post
Share on other sites
Yes you are right. I doubled the number of polygons and the wave looked alot smoother.

The problem is still that the change in Y is greater than the change in Z so the quads are forced to stretch. I might need to find the perfect wave dude

I''ll keep looking into more terrain techniques.

thanks.

Share this post


Link to post
Share on other sites
Well..if somethings flat it has less area than if it was wavy, i.e if you dont want to stretch you polys you will have to create more at run time when the wave comes along.

quote:

I need to constantly update a large portion of terrain in the form of a massive lava pit which boils and rolls with bursting pockets sloshing splashes and lava waves.



Cool! Make sure to post some pictures when you are finished

Share this post


Link to post
Share on other sites
oh, I''m a ways off from any screen shots.... thanks for the vote of confidence though

Actually, I''m trying to read that ROAM paper: http://www.llnl.gov/graphics/ROAM/roam.pdf

....and I''m at part 6 Error Metrics. I''m having trouble understanding exactly what a wedgie is. Would anyone be able to explain it?

tia,

Share this post


Link to post
Share on other sites
Guest Anonymous Poster
It''s a triangle with ''thickness'' It''s basically a funny shaped bounding box around the triangle and it''s potential error range.

Share this post


Link to post
Share on other sites
ok thanks. I''m still having trouble grokking this. The formula which defines the wedgie references another formula defined in the paragraph above which hasn''t quite clicked in my head yet either.

The paper says:

"In the remainder of this paper we restrict our attention to height maps. Specifically, we assume that the vertex-to-world-space mapping W(V) is of the form
W(V) = (Vx, Vy, Z(V)) where (Vx, Vy) are the domain coordinates of the vertex V, and Z(V) is the height at V. We denote the affine height map for a bintree traingle T to be ZT(x,y)."

ZT(x,y) is then in turn referenced in the wedgie definition, but I don''t know what it is. What is it?

Thanks

Share this post


Link to post
Share on other sites
Ok, I think I figured this out....
quote:
The paper says:

"In the remainder of this paper we restrict our attention to height maps. Specifically, we assume that the vertex-to-world-space mapping W(V) is of the form
W(V) = (Vx, Vy, Z(V)) where (Vx, Vy) are the domain coordinates of the vertex V, and Z(V) is the height at V. We denote the affine height map for a bintree traingle T to be ZT(x,y)."


ZT(x,y) is just the function used to get the value for the height of the height map, right?

I hope I''m right.

Share this post


Link to post
Share on other sites
Guest Anonymous Poster
quote:
Original post by archon


ZT(x,y) is just the function used to get the value for the height of the height map, right?

I hope I''m right.





95% right. Z(x,y) is the height from the height map. ZT(x,y) is the ''affine height map.'' In this case, the ''affine height map'' is the height map transformed into screen space.

That means it''s related to how high the map ''looks'' instead of how high it ''is''. ROAM uses this because it will use less detail when you''re viewing a terrain from above, since the visible error in the approximated heightmap will be at it''s maximum only when you can see the terrain from side on.

Share this post


Link to post
Share on other sites
Using ROAM, you can have a error dependent split metric so you''re fixing the polygon stretching problem by dynamically adding more triangles where needed.

I think ROAM paper is frame-coherent and if there''s a lot of bubbles and waves etc. changing often, you might want to look into split only algorithms that don''t do merges. It''s a lot easier to implement and you won''t be trouncing up and down node trees when new bubbles and waves appear. You will have to totally decimate the landscape each frame though.

Just a thought.

Share this post


Link to post
Share on other sites
re: Anonymous Poster, thank you for the gem of clarification! Section 6 and figure 7 specifically make alot more sense now.

re: LilMikey , thanks for the tip. Bryan Turner''s gamasutra article and implementation is an example of a split-only algorithm, right?

The pieces are coming together in my head pretty slowly on this ROAM paper .......hopefully surely.


Thanks again for your insights,

Share this post


Link to post
Share on other sites
Sorry it took so long to get back to you. The gamasutra article by Turner is split only. He makes reference to coherency at the end of the article but says nothing about it. The terrain rendering class at GameInstitute (taught by Turner) goes through both methods and both binary and quad splitting methods.

Share this post


Link to post
Share on other sites