Jump to content
  • Advertisement


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


Terrain quadtree

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

Well I am currently trying to implement quadtree for my terrain engine. I Currently load successfully a heightmap, filling one large vertex buffer and one index buffer. I know basics principles about implementation. 1) There is one Index Buffer (dynamic) for each node. So i need to divide my terrain into sub-patches of to say xXx units. If i create an index buffer for each leaves, and render them individually, they will not be connected, so I need to add indices to the IB, right? 2) If i can build the IB from the full heightmap without problems, how can i compute the indices of "squares" in the original HM? trying to subdivide HM into patches, but i dont know if it have any mathematical relationship or a pattern for having the indices of a square. Ex: 1 1 1 1 2 2 2 2 1 1 1 1 2 2 2 2 1 1 1 1 2 2 2 2 1 1 1 1 2 2 2 2 how can i have the indices of the square made of "2" if i already have computed the "complete" index buffer? thx

Share this post

Link to post
Share on other sites
Not be connected? What? If you drew the terrain in patches (ie quadtree patches), they WOULD appear to "connect" to neighboring patches even tho they weren't drawn in the same call. There's no requirement saying a model/whatever has to be drawn in a single call to avoid cracks. In fact, models which have multiple textures are drawn in texture segments anway.

If you decide to render quadtree patches individually (rather than a single DrawPrimitive call w/ a single IB), you probably don't need an IB since you could use tristrips instead (faster anyway). This COULD get slow if you draw too many patches individually.

Generating the indices for the dynamic IB is easily done if the verts are in some incremental order. It gets tricky if there is no order (ie storing different LODs, etc. in the same VB). If you can't dynamically generate the indices, you could just copy around parts of the original IB to the dynamic IB and render with that and the original VB.

I think there's another post floating around this board where someone else doing terrain also used quadtrees and a dynamic IB. The author complained about memcpy being slow in reference to creating the dynamic IB (SHOULDN'T be true). You might check that out...

[edited by - flaxen on March 16, 2003 10:40:33 PM]

[edited by - flaxen on March 16, 2003 10:42:36 PM]

Share this post

Link to post
Share on other sites

  • Advertisement

Important Information

By using GameDev.net, you agree to our community Guidelines, Terms of Use, and Privacy Policy.

Participate in the game development conversation and more when you create an account on GameDev.net!

Sign me up!