Clipmaps?

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

Recommended Posts

I read that paper about clipmaps, and it seems pretty cool. I like how I can keep everything in a VBO and the multiple levels of detail is pretty interesting. Can someone translate the document for me a little? I have a basic understanding of what is going on, but the finer details are getting lost on me. Another question: the authors note that there are texture seams between clip regions, and they mentioned pixel shaders as the fix in the powerpoint presentation. Do you have to use pixel shaders to fix this? Is there any way to fix these seams on a card that doesn't support shaders (ie mine?) [Edited by - sirSolarius on February 11, 2005 10:30:42 PM]

Share on other sites
Quote:
 Original post by sirSolariusAnother question: the authors note that there are texture seams between clip regions, and they mentioned pixel shaders as the fix in the powerpoint presentation. Do you have to use pixel shaders to fix this? Is there any way to fix these seams on a card that doesn't support shaders (ie mine?)

If your board is limited then I suggest you to use alpha blending on the edge of each square. In fact, the polygons marked as '.' (overlap) in this schema might be blended with the polygons which are under them (1 is the first clipmap level, 2 is the second level).
222222222222222222222222222222..........2222.11111111.2222.11111111.2222.11111111.2222.11111111.2222.11111111.2222.11111111.2222..........222222222222222222222222222222

The result will be slightly different - less accurate - but it should be gould enough.

HTH,

Share on other sites
The geometry clipmap idea seems very promising. When I tried to implement it however, I ran into a silly problem:

x x x x
- - - x
- - - x
- - - x

Say the x's are the L-shaped region that needs to be updated. Writing the horizontal row of the region to the VBO is fine and can be done in one call in OpenGL (since they are consecutive elements in the array). Writing the vertical column is what presents problems, because they are spaced out in the array, and I need a call for each x in the column. I've tried doing that and results were very slow (slower than just updating the entire clipmap)

I'm more than sure there is a very simple solution to my problem, but I can't see it.

Share on other sites
Quote:
 Original post by IgorMWriting the vertical column is what presents problems, because they are spaced out in the array, and I need a call for each x in the column. I've tried doing that and results were very slow (slower than just updating the entire clipmap)

You don't need to update the entire clipmap, but you do need to lock (or map) its entire VBO to update the L-shaped region. On newer hardware you could work around this by storing the height data in a texture and using a vertex shader to access the data. Otherwise you will just have to lock the entire clip region.