1 / 16

Heuristics for 3D model decomposition

Explore techniques for splitting polyhedra into convex parts, improving calculations like collision detection. Learn about different decomposition algorithms and ways to optimize piece sizes. Discover future research prospects and references for further reading.

mclement
Download Presentation

Heuristics for 3D model decomposition

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Heuristics for 3D model decomposition Presented by Luv Kohli COMP258 December 11, 2002

  2. What is convex decomposition? • Technique to split up arbitrary polyhedra into convex pieces • Many calculations are far easier between convex objects • Collision detection, penetration depth, etc.

  3. How is it done? • Two broad categories • Convex solid decomposition • Has output of size O(n2) – impractical • Convex surface decomposition • Complexity O(r), where r is the number of reflex edges

  4. Convex surface decomposition • Space partitioning • Space sweep • Flooding • Traverse the dual graph of the surface • Start at some node and collect facets as long as they form a convex patch

  5. Chazelle, et al.Flood and Retract

  6. Decomposition in SWIFT++ • Essentially a flooding algorithm using DFS or BFS • Uses “cresting” algorithm to determine seed faces • Start growing from faces furthest away from reflex edges

  7. Decomposition in SWIFT++

  8. Cresting • The cresting technique attempts to minimize the number of pieces by allowing them to grow as large as possible • There may be other decomposition algorithms that provide better results for certain applications • Equal-sized pieces?

  9. Alg1 – Reverse (& Fwd) cresting • Uses the same technique of finding distance from reflex edges (with minor modifications) • Prioritizes seed faces in reverse • Lets smaller pieces grow first so they are not overwhelmed by larger ones

  10. Alg2 – Reverse (& Fwd) flooding • Uses potential piece sizes instead of distances from reflex edges • For each unvisited face, flood (grow) while the current piece is still convex • When growing ceases, record the piece size for use as priority

  11. Alg3 – Flooding w/ surface area • Use surface area of flooded pieces to prioritize growing • Same idea as before but with different input to the graph traversal algorithm

  12. Other ideas • Use some threshold value to stop piece growing • Try to keep pieces around the same size • Grow in parallel • Issues with determining how many pieces to grow from simultaneously

  13. Future work • Run rigorous timing tests with SWIFT++ to determine if different decomposition methods have an effect on collision detection • Combination of decomposition methods?

  14. References • Ehmann, Stephen A., Lin, Ming C. Accurate and Fast Proximity Queries Between Polyhedra Using Convex Surface Decomposition, EUROGRAPHICS 2001. • Chazelle, B. et al. Strategies for polyhedral surface decomposition: An experimental study, Comp. Geom. Theory Appl., 7:327-342, 1997. • Chazelle, B. Convex Partitions of Polyhedra: A Lower Bound and Worst-Case Optimal Algorithm, SIAM J. Comp., Vol. 13, No. 3, August 1984. • Bajaj, C. L., Dey, T. K., Convex Decomposition of Polyhedra and Robustness, SIAM J. Comp., Vol. 21, No. 2, April 1992.

More Related