• Advertisement
Sign in to follow this  

bounding volume hierarchies/space partitioning algorithms

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

I have an object which is converted into triangular mesh. I have found the AABB of the entire object So I would like to know what bounding volume hierarchy/ space partition methods are possible. I would also like to know if it would have been easier with a bounding sphere ? What are the BV hierarchy/space partition methods in case of boundary sphere ? I looked up BSP trees but I could not understand how they choose the splitting planes. please help

Share this post


Link to post
Share on other sites
Advertisement
each spatial index has different things it is good at querying for

you need to decide what kind of queries you need to do and then choose the most appropriate spatial index

example query:

- return all objects in view frustum
- return all light/occluder volumes that intersect the view frustum
- return all objects occluded by something etc.
- sorting objects into depth order

so far i have only built an octree

and i can query it using:

- aabb
- sphere
- frustum
- plane

for instance "select * from octree where object intersects frustum"

usually spatial indexes are used for handling large quantities of objects or chunks of objects

it sounds like you have one big object - like a planet

are you thinking about breaking it up into chunks so you can only render the visible bits ?

Share this post


Link to post
Share on other sites
The bounding volume of an object is only an approximation of the object you're going to test against the Bounding Volume Hierarchy (BVH) / Space Partitioning Structure(SPS) and nothing more. Using one specific bounding volume, like an AABB, an OBB or a Bounding Sphere, doesn't bound you to using some specific BVH/SPS. You can mix them at will.

Regarding your question about bounding spheres, they result in the fastest intersection/containment queries. All you need to do to compute the result of a point's containment for instance, is to compare the radius of that sphere with that point's distance to sphere's origin. Fast intersection/containment queries and low memory requirements (all you need to store a Bounding Sphere in memory is a vector pointing to its origin and a floating-point number representing its radius) are the main reasons Bounding Spheres are popular. Bounding Spheres, on the negative side, don't fit most objects as tightly as other bounding volume structures do, so as always there are trade-offs to be considered. Bounding Spheres are usually used for fast crude rejections.

To reiterate the point though, you can use any BVH/SPS with any bounding volume.

Share this post


Link to post
Share on other sites
Have a look at the Geometric tools website: http://www.geometrictools.com/LibGraphics/Collision/Collision.html

There is an implementation there of some BVH that you can use.

Share this post


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

  • Advertisement