Jump to content
  • Advertisement
Sign in to follow this  
d000hg

Occlusion algorithms for a chunk-based heightmap

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

The only occlusion testing I have so far is to recurse through the quadtree of my scene and see if the bounding boxes of the chunks intersect with the view frustrum. But I feel I should be able to check if a chunk far away is obscured by one nearby. As a first question, should I be rendering the selected chunks from nearest to furthest or vice versa? I assume reducing overdraw is good so draw furthest first? And the main question, what are some algorithms for this, can you suggest links to decent articles, and how tricky are they to implement?

Share this post


Link to post
Share on other sites
Advertisement
Guest Anonymous Poster
You could include some sort of static PVS data (which would need to be pregenerated)

This involves, for each chunk, calculating whether each other chunk is ever visible, and storing the result in a bitfield.

At run time you can then draw the chunks that pass the frustum test, and are visible according to the PVS data.

This is obviously only useful if your geometry remains static, but is very low processor demand at run time.

At the other end of the spectrum Yann L uses a variation on Heirarchical Occlusion Maps, an image space technique proposed by Zhang.

He uses a software renderer to produce a depth map of occluders, and then tests the bounding volumes of objects against the depths in the image to see whether the object should be submitted.

Share this post


Link to post
Share on other sites
Sign in to follow this  

  • 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!