terrain engine idea
I had this idea for a terrain engine, and I was just wondering what others thought of it, and it has been implemented before.
my idea is rather than use a rectangular grid for your height feild, you use a polar grid centered around the view position. a bunch of concentric circles centered around the view position with a number of axes running out from them to form the grid. the number of circles and axes would be a function of the viewer altitude
the terrain's vertex data can be updated every few seconds or useing a multi-threading solution.
I'm thinking this could have distinct advantages over the normal method of square grids of varying dencities, it would atomaticly have higher level of detail closer to the player, and it would probly be easy to cull geometry especaly if you can ensure that the ceter point is always behind the eye. but it would also mean that all points would have to be calculated dynamicly, you wouldn't just be able to make a maximum dencity grid and cache from that.
I'm not very experienced with terrain engines, so this might be common, but I don't think I've ever seen an implementation like this.
does anyone think this might be a good idea?
Isn't this somewhat similar to what geometry clipmaps do? I didn't really understand the clipmap paper last time I read it...
I've looked into it a bit, but havn't taken the time to get something that looks good. You don't have to convert between coordinate systems, you can generate the concentric circles once in a preprocessing stage, and look up a heightmap using the x and y components to set it to the terrain around you.
It could be a usefull technique, but is not entirely without issues:
1. It gives a bit of a weird effect when you move around, more noticable than other lod schemes because everything changes.
1. It's hard on the cpu (you need bicubic interpolation for it to look good) and these days people want to push more work to the gpu. But the cpu time is a problem with most lod schemes.
3. I think textures distort a bit. I get the feeling you should be able to use the texture matrix somehow so you don't have to generate the uv coords yourself, but I havn't tried.
It could be a usefull technique, but is not entirely without issues:
1. It gives a bit of a weird effect when you move around, more noticable than other lod schemes because everything changes.
1. It's hard on the cpu (you need bicubic interpolation for it to look good) and these days people want to push more work to the gpu. But the cpu time is a problem with most lod schemes.
3. I think textures distort a bit. I get the feeling you should be able to use the texture matrix somehow so you don't have to generate the uv coords yourself, but I havn't tried.
with the newer VS versions comeing out, there could be a static vertx buffer that just reads the hieghtmap, much like displacement mapping, then all you'd have to do is make sevral versions of the base vertex/index buffers for the diferent LODs. unfortunately this would requier VS 3.0 or later, you'd need to be able to look into a texture and get a color at a vertex. after getting this set up all you'd need would be a simple translation matrix for the textures.
This topic is closed to new replies.
Advertisement
Popular Topics
Advertisement