Bounding Volume Hierarchy “Efficient Distance Computation Between Non-Convex Objects” Sean Quinlan Stanford, 1994 Presented by Mathieu Brédif.

Slides:



Advertisements
Similar presentations
CSG and Raytracing CPSC 407.
Advertisements

2.6. B OUNDING V OLUME H IERARCHIES Overview of different forms of bounding volume hierarchy.
Trees for spatial indexing
Christian Lauterbach COMP 770, 2/16/2009. Overview  Acceleration structures  Spatial hierarchies  Object hierarchies  Interactive Ray Tracing techniques.
INTERVAL TREE & SEGMENTATION TREE

Collision Detection CSCE /60 What is Collision Detection?  Given two geometric objects, determine if they overlap.  Typically, at least one of.
Computer graphics & visualization Collisions. computer graphics & visualization Simulation and Animation – SS07 Jens Krüger – Computer Graphics and Visualization.
Searching on Multi-Dimensional Data
CSE 381 – Advanced Game Programming Scene Management
S. J. Shyu Chap. 1 Introduction 1 The Design and Analysis of Algorithms Chapter 1 Introduction S. J. Shyu.
Geometric Representations & Collision Detection Kris Hauser I400/B659: Intelligent Robotics Spring 2014.
Week 14 - Monday.  What did we talk about last time?  Bounding volume/bounding volume intersections.
CS447/ Realistic Rendering -- Solids Modeling -- Introduction to 2D and 3D Computer Graphics.
K-structure, Separating Chain, Gap Tree, and Layered DAG Presented by Dave Tahmoush.
CSE332: Data Abstractions Lecture 10: More B-Trees Tyler Robison Summer
1 Dr. Scott Schaefer Hidden Surfaces. 2/62 Hidden Surfaces.
Introduction General Data Structures - Arrays, Linked Lists - Stacks & Queues - Hash Tables & Binary Search Trees - Graphs Spatial Data Structures -Why.
CS 326 A: Motion Planning robotics.stanford.edu/~latombe/cs326/2004/index.htm Collision Detection and Distance Computation.
OBBTree: A Hierarchical Structure for Rapid Interference Detection Gottschalk, M. C. Lin and D. ManochaM. C. LinD. Manocha Department of Computer Science,
UNC Chapel Hill M. C. Lin Overview of Last Lecture About Final Course Project –presentation, demo, write-up More geometric data structures –Binary Space.
B + -Trees (Part 1). Motivation AVL tree with N nodes is an excellent data structure for searching, indexing, etc. –The Big-Oh analysis shows most operations.
Bounding Volume Hierarchies and Spatial Partitioning Kenneth E. Hoff III COMP-236 lecture Spring 2000.
B + -Trees (Part 1) COMP171. Slide 2 Main and secondary memories  Secondary storage device is much, much slower than the main RAM  Pages and blocks.
Efficient Distance Computation between Non-Convex Objects by Sean Quinlan presented by Teresa Miller CS 326 – Motion Planning Class.
1 Advanced Scene Management System. 2 A tree-based or graph-based representation is good for 3D data management A tree-based or graph-based representation.
Efficient Distance Computation between Non-Convex Objects By Sean Quinlan Presented by Sean Augenstein and Nicolas Lee.
AALG, lecture 11, © Simonas Šaltenis, Range Searching in 2D Main goals of the lecture: to understand and to be able to analyze the kd-trees and.
Collision Detection David Johnson Cs6360 – Virtual Reality.
Spatial Data Structures Jason Goffeney, 4/26/2006 from Real Time Rendering.
1 SD-Rtree: A Scalable Distributed Rtree Witold Litwin & Cédric du Mouza & Philippe Rigaux.
Computer Algorithms Submitted by: Rishi Jethwa Suvarna Angal.
PRESENTED BY – GAURANGI TILAK SHASHANK AGARWAL Collision Detection.
Collaborative Visual Computing Lab Department of Computer Science University of Cape Town Graphics Topics in VR By Shaun Nirenstein.
B + -Trees. Motivation An AVL tree with N nodes is an excellent data structure for searching, indexing, etc. The Big-Oh analysis shows that most operations.
Starting at Binary Trees
CIS 350 – I Game Programming Instructor: Rolf Lakaemper.
Lecture 11COMPSCI.220.FS.T Balancing an AVLTree Two mirror-symmetric pairs of cases to rebalance the tree if after the insertion of a new key to.
Spatial Indexing Techniques Introduction to Spatial Computing CSE 5ISC Some slides adapted from Spatial Databases: A Tour by Shashi Shekhar Prentice Hall.
Presented by Paul Phipps
Maths & Technologies for Games Spatial Partitioning 2
1 CSCE 441: Computer Graphics Hidden Surface Removal Jinxiang Chai.
February 17, 2005Lecture 6: Point Location Point Location (most slides by Sergi Elizalde and David Pritchard)
Adversarial Search 2 (Game Playing)
Ray Tracing Acceleration (5). Ray Tracing Acceleration Techniques Too Slow! Uniform grids Spatial hierarchies K-D Octtree BSP Hierarchical grids Hierarchical.
Interactive Continuous Collision Detection for Polygon Soups Xin Huang 11/20/2007.
A Fast Algorithm for Incremental Distance Calculation Ming C. Lin & John Canny University of California, Berkeley 1991 Presentation by Adit Koolwal.
Minkowski Sums and Distance Computation Eric Larsen COMP
Hierarchical Data Structure in Game Programming Yanci Zhang Game Programming Practice.
Spatial Data Management

Bounding Volume Hierarchies and Spatial Partitioning
Computational Geometry
Data Structures: Disjoint Sets, Segment Trees, Fenwick Trees
Distance Computation “Efficient Distance Computation Between Non-Convex Objects” Sean Quinlan Stanford, 1994 Presentation by Julie Letchner.
Collision Detection Spring 2004.
Bounding Volume Hierarchies and Spatial Partitioning
Deformable Collision Detection
Modeliranje kompleksnih modelov
Real-Time Ray Tracing Stefan Popov.
Parts of these slides are based on
KD Tree A binary search tree where every node is a
Efficient Distance Computation between Non-Convex Objects
Data Structures: Segment Trees, Fenwick Trees
2-3-4 Trees Red-Black Trees
Collision Detection.
Deformable Collision Detection
David Johnson Cs6360 – Virtual Reality
Modeliranje kompleksnih modelov
Presentation transcript:

Bounding Volume Hierarchy “Efficient Distance Computation Between Non-Convex Objects” Sean Quinlan Stanford, 1994 Presented by Mathieu Brédif

Simplifying Assumptions Surface analysis only Decomposition of objects into sets of convex surfaces Easy in graphics; all surfaces are composed of triangles Not necessarily easy in general

Basis: Convex Objects Efficient distance computation between convex polyhedra Decomposition of two objects into m and n convex polyhedra. O(mn) distance computation

Algorithm Overview Preprocessing: Approximation by Bounding Volume Hierarchies of Spheres Query: Branch and Bound in both trees to find minimum distance

The Sphere Hierarchy Binary tree Root node = object’s bounding sphere Leaf nodes are tiny spheres; their union approximates the object’s surface Every node’s sphere contains entirely its descendents

Creating the Leaves Cover the object surface with tiny spheres (leaf nodes). Radius: user-determined.

Creating a ~balanced Tree Divide halfway in the major axis of a rectangular bounding box. Recurse until 1 leaf per set (Root down to leaves)

Decorating the Tree with Spheres Leaves up to root: create bounding spheres for each node. Best of 2 methods: Find the minimal sphere that contains the two spheres of the child nodes Determine a sphere directly from the leaf nodes descended from this node

Resulting Tree Representation

Query: Computing Distances Depth-first search on the binary tree Keep an updated minimum distance Depth-first  more pruning in search Prune search on branches that won’t reduce minimum distance Once leaf node is reached, examine underlying convex polygon for exact distance (former method)

Simple Example Set initial distance value to infinity Start at the root node. 20 < infinity, so continue searching

Simple Example Set initial distance value to infinity Start at the root node. 20 < infinity, so continue searching. 40 < infinity, so continue searching recursively. Choose the nearest of the two child spheres to search first

Simple Example Eventually search reaches a leaf node 40 < infinity; examine the polygon to which the leaf node is attached.

Simple Example Eventually search reaches a leaf node Call algorithm to find exact distance to the segment. Replace infinity with new minimum distance (42 in this case). 40 < infinity; examine the segment to which the leaf node is attached. d = 42

Simple Example Continue depth-first search 45 > 42; don’t search this branch any further

Simple Example Continue depth-first search 60 > 42; we can prune this half of our tree from the search 45 > 42; don’t search this branch any further

Efficiency: Building the Tree Roughly balanced binary tree Expected time O(n log n) Worst case time O(n 2 ) (n = #leaves nodes) Precomputed: Built only once!

Efficiency: Searching the Tree Full search O(n) to traverse the tree + O(p) time to compute distance to each polygon in the underlying model The algorithm allows a pruned search Worst case: no change! (close objects) Best case: O(log n) + a single polygon comparison

Collision Detection BVH: Two sphere trees 2 spheres intersects => descend further May need to descend to polygon level (line segment in 2D)

Collision Detection Quick Widely separated Collided Slower Close but not overlapping Close at many points

Extension: Multiple Trees If 2nd object is not a single point Start at root of both trees Branch: split the larger sphere The closest child to the unsplit sphere is searched first Deformable Object: precomputation of solid links, meta-tree computation before queries

Extension: Relative Error New minimum distance d Registration: d’ = (1-  )*d  user-determined relative error d’=0 iff d=0; correct collision detection Better pruning => performance speedup Exact distance in [d’,d’/(1-  )] Trade off: efficiency/exactitude

Empirical Results Relative error of 20% more pruning in search speedup of 2 orders of magnitude Objects close together less pruning in search less efficient

Conclusions Simple and intuitive way to speed up distance calculations Gives more information than collision detection algorithms Built on top of algorithms that compute distances between convex polygons Applications to path planning (robot=object1, obstacles=object2)