lecture20 - Fast Proximity Queries for Fast Proximity...

Info iconThis preview shows page 1. Sign up to view the full content.

View Full Document Right Arrow Icon
This is the end of the preview. Sign up to access the rest of the document.

Unformatted text preview: Fast Proximity Queries for Fast Proximity Queries for Interactive Walkthroughs Ming C. Lin University of North Carolina at Chapel Hill http://www.cs.unc.edu/~geom/collide.html Presented by Dave Luebke for CS 551/651-2 Proximity Queries Proximity Queries Collision • A procedure to compute the geometric contact (and distance) between objects. Theme Theme • Use of coherence, locality, hierarchy Use coherence, and incremental computations incremental computations t=0 t=1 Other Applications Other Applications • Rapid Prototyping ­­ tolerance verification • Dynamic simulation ­­ contact force calculation • Computer Animation ­­ motion control • Motion Planning ­­ distance computation • Haptic Rendering ­­ restoring force computation • Simulation­Based Design ­­ interference detection Goals Goals • Efficiency – real­time (interactive) for pairwise & n­body • Accuracy – exact, not approximation • Practical – should work on “real­world” models – relatively easy to implement – general yet robust Problem Domain Problem Domain Specifications • Model Representations – polyhedra (convex vs. non­convex vs. soups) – CSG, Implicit Rep, Parametric Rep • Type of Queries – – – – collision detection distance computation penetration depth estimated time to collision • Simulation Environments – – – pairwise vs. n­body static vs. dynamic rigid vs. deformable Problem Complexity Problem Complexity Given an environment consisted of m objects and each has no more than n polygons, the problem polygons, the problem has the following complexity using brute­force methods: • N­Body: O(m2) • Pairwise: O(n2) Organization Organization • Multi­Body Environments – Sweep & Prune – Scheduling Scheme • Pairwise Proximity Queries – Convex Objects (Lin&Canny, SWIFT) – General Models (OBBTree, SSV) • Data Management System Architecture System Architecture Transform Overlap Sweep & Prune Exact Collision Detection Simulation Parameters Analysis & Response Collision Sweep and Prune Sweep and Prune • Compute the axis­aligned bounding box (fixed vs. dynamic) for each object • Dimension Reduction by projecting boxes onto each x, y, z­ axis • Sort the endpoints and find overlapping intervals • Possible collision ­­ only if projected intervals overlap in all 3 dimensions Dimension Reduction Dimension Reduction T=1 e3 e2 b3 e1 b2 b1 b1 b2 e1 e2 e3 b3 T=2 b1 b2 e1 e2 b3 e3 e2 e1 b2 e3 b1 b3 Dimension Reduction Dimension Reduction T=1 b1 b2 e1 e2 b3 e3 X-axis b1 b2 e1 b3 e2 e3 Y-axis b1 b2 e1 e2 b3 e3 X-axis b3 b1 e3 b2 e1 e2 Y-axis T=2 T=1 1 2 3 1 2 3 T=2 1 XY Y 2 3 1 2 3 XY Y Updating Bounding Boxes Updating Bounding Boxes • Coherence (greedy walk) • Convexity properties (geometric properties of convex polytopes) • Nearly constant time, if the motion is relatively “small” Use of Sorting Methods Use of Sorting Methods • Initial sort ­­ quick sort runs in O(m log m) just as in any ordinary situation just as in any ordinary situation • Updating ­­ insertion sort runs in O(m) due due to coherence. We sort an almost sorted list from last stimulation step. In fact, we look for “swap” of positions in all 3 dimension. Scheduling Scheme Scheduling Scheme • When the velocity and acceleration of all objects are known, use the scheduling scheme to prioritize “critical events” to be processed (using heap) – Each object pair is tagged with the estimated time to next collision. – All object pairs are sorted accordingly. – The heap is updated when a collision occurs. Deriving Bounds Deriving Bounds • amax: an upper bound on relative acceleration between an any two points on any pair of objects. • alin: relative absolute linear ∀ α: relative rotational accelerations ∀ ω: relative rotational velocities • r: vector difference btw CoM of two bodies vector difference btw CoM of two bodies • d: initial separation for two given objects initial separation for two given objects amax = | alin + α x r + ω x ω x r | vi = | vllin + ω x r | in Bounding Time to Collision Bounding Time to Collision • Given the bound on maximum relative acceleration (including rotational and linear) amax and initial relative velocity (including rotational & linear) vi with separation d between two objects, with separation 1/2 tc = [ (vi2 + 2 amax d ) 1/2 - vi ] / amax max Basic Steps Basic Steps • Maintain a queue of all object pairs sorted by approximated time to collision • At each step, only update the closest feature pair at the head of priority queue (as a heap) • If collision occurs, handle collision • Re­compute time­to­collision for the affected feature pairs and reinsert them into the queue Organization Organization • Literature Survey • Multi­Body Environments – Sweep & Prune – Scheduling Scheme • Pairwise Proximity Queries – Convex Objects (Lin&Canny, SWIFT) – General Models (OBBTree, SSV) • Data Management Tracking Closest Features Tracking Closest Features v • Lin & Canny [1991]: expected O(1) time Voronoi Regions Voronoi Regions • Given a collection of geometric primitives, it is a subdivision of space into cells such that all points in a cell are closer to one primitive than to any other Voronoi Site Voronoi Region Closest Feature Tracking Closest Feature Tracking Using Voronoi Regions Basic Algorithm Basic Algorithm • Given one feature from each polyhedron, find the nearest points of the two features. • If each nearest point is in the Voronoi region of the other feature, closest features have been found. • Else, walk to one or both of their neighbors or some other feature. Running Time Analysis Running Time Analysis • Distance strictly decreases with each change of feature pair, and no pair of features can be selected twice. • Convergence to closest pair typically much better for dynamic environments: – O(1) achievable in simulations with coherence – Closer to sub­linear time performance even without coherence I­Collide Collision Detection I­Collide Collision Detection System • Routines: – N­body overlap tests (sweep and prune) – Distance calculation btwn convex polytopes • Public domain system • 2500+ researchers have ftp’ed the code • A mailing list of many hundreds of users I­Collide System Demonstrations I­Collide System Demonstrations • Architectural Walkthrough • Dynamic Simulator (Impulse) • Multi­Body Simulators Architectural Walkthrough Architectural Walkthrough System Demonstration System Demonstration Video Penetration Detection Penetration Detection Accelerated Proximity Queries based Accelerated Proximity Queries based on Multi­Level Marching • Improved closest feature­tracking based on Voronoi regions • Use of normal tables to jump start and avoid local minima problem • Take advantages of level­of­details (multi­ resolution) representations Implementation: SWIFT Implementation: SWIFT • Progressive Refinement Framework • Faster (2x to 10x ) than any public domain packages for convex objects • Insensitive to level of motion coherence • Will be available at: http://www.cs.unc.edu/~geom/SWIFT Motivation Motivatio Parallel close Parallel proximity: proximity: piston against piston combustion combustion chamber wall chamber Engine model courtesy of Engineering Animation Inc Motivation Model Courtesy of ABB Engineering, Inc. A Coal-fired Powerplant Model: 15,432,126 triangles BVH­Based Collision BVH­Based Collision Detection • Model Hierarchy: – each node has a simple volume that bounds a set of triangles – children contain volumes that each bound a different portion of the parent’s triangles – The leaves of the hierarchy usually contain individual triangles • A binary bounding volume hierarchy: BVH­Based Collision BVH­Based Collision Detection Higher Order Bounding Higher Order Bounding Volume Hierarchies • OBBTree: Tree of Oriented Bounding Boxes (OBBs) • SSV: Tree of Swept Sphere Volumes OBBTREES: Organization OBBTREES: Organization • • • • Building an OBBTree Tree Traversal OBB Overlap Test Performance Building an OBB Tree Recursive top-down construction: partition and refit Building an OBB Tree Given some polygons, consider their vertices... Building an OBB Tree Project onto the line Consider variance of distribution on the line Building an OBB Tree Given by eigenvectors of covariance matrix (summarizing the 1st & 2nd order statistics) of coordinates of original points Building an OBB Tree Choose bounding box oriented this way Building an OBB Tree … and sample them uniformly Building an OBB Tree: Building an OBB Tree: Summary OBB Fitting algorithm: • • • • • Statistics-based Use of convex hull Uniform sampling distributions O(n log n) fitting time for single BV O(n log2 n) fitting time for entire tree OBBTREES: Organization OBBTREES: Organization • • • • Building an OBBTree Tree Traversal OBB Overlap Test Performance Tree Traversal Tree Traversal Disjoint bounding volumes: No possible collision Tree Traversal Overlapping bounding volumes: Overlapping • split one box into children split • test children against other box test Tree Traversal Tree Traversal First child: no overlap Tree Traversal Second child overlaps: Second • split larger box split • continue tests continue Tree Traversal Tree Traversal Tree Traversal Tree Traversal Tree Traversal Tree Traversal Hierarchy of tests OBBTREES: Organization OBBTREES: Organization • • • • Building an OBBTree Tree Traversal OBB Overlap Test Performance Separating Axis Theorem Separating Separating Axis Theorem Separating Axis Theorem Two polytopes A and B are disjoint iff there exists a separating axis which is: perpendicular to a face from either or perpedicular to an edge from each Implications of Theorem Implications of Theorem Given two generic polytopes, each with E edges and F faces, number of candidate axes to test is: 2F + E2 OBBs have only E = 3 distinct edge directions, and only F = 3 distinct face normals. OBBs need at most 15 axis tests. Because edge directions and normals each form orthogonal frames, the axis tests are rather simple. OBB Overlap Test OBB Overlap Test L ha s hb L is a separating axis iff: s > ha+hb OBB Overlap Test OBB Overlap Test • Project boxes onto axis. If intervals don’t overlap, it is a separating axis. • A separating axis exists if and only if boxes are disjoint. • 2D OBBs: 4 axes to test • 3D OBBs: 15 axes to test OBB Overlap Test OBB Overlap Test • Typical axis test for 3­space. s = fabs(T2 * R11 - T1 * R21); ha = a1 * Rf21 + a2 * Rf11; hb = b0 * Rf02 + b2 * Rf00; if (s > (ha + hb)) return 0; • Up to 15 tests required. OBB Overlap Test OBB Overlap Test • Strengths of this overlap test: – 80 to 234 arithmetic operations per boxoverlap test – No special cases for parallel/coincident faces, edges, or vertices – No special cases for degenerate boxes – No conditioning problems – Good candidate for micro­coding OBB Overlap Test: OBB Overlap Test: SIMD Implementation [Jointly with Intel] • Decompose into 5 sets of axis tests – Each set implemented using Katmai SIMD instruction sets – About 2.5 times speedup in practice OBBTREES: Organization OBBTREES: Organization • • • • Building an OBBTree Tree Traversal OBB Overlap Test Performance AABB’s vs. OBB’s AABB’s vs. OBB’s Approximation of a Torus Dynamic Simulation Dynamic Simulation Interactive Collision Detection on 2 complex Pipelines: 140K Engineering Animation Engineering Animation Simulation­Based Design Simulation­Based Design System Demonstration System Demonstration Video Implementation: RAPID Implementation: RAPID • Available at: http://www.cs.unc.edu/~geom/OBB • Part of V­COLLIDE: http://www.cs.unc.edu/~geom/V_COLLIDE • More than 3000 users have ftp’ed the code • Used for virtual prototyping, dynamic simulation, robotics and computer animation Technology Transfer Technology Transfer • Virtual Protptyping & VEs: Division, MSC Working Knowledge, Prosolvia, Ford, AmandaSoft, Lockheed­Martin • Computer Animation: Jack/Transom Tech. • Medical Applications: ADAC Lab • Interactive Gaming: Intel, OZ.com, Blaxxun etc. Swept Sphere Volumes Swept Sphere Volumes PSS LSS RSS Swept Sphere Volumes Swept Sphere Volumes (S­topes) PSS LSS RSS SSV Fitting SSV Fitting • Use OBB’s code based upon Principle Component Analysis • For PSS, use the largest dimension as the radius • For LSS, use the two largest dimensions as the length and radius • For RSS, use all three dimensions Overlap Test Overlap Test • One routine that can perform overlap tests between all possible combination of CORE primitives of SSV(s). • The routine is a specialized test based on Voronoi regions and OBB overlap test. • It is faster than GJK. Hybrid BVH’s based on SSV Hybrid BVH’s based on SSV • Use a simpler BV when it prunes search equally well ­ benefit from lower cost of BV overlap tests • Overlap test (based on Lin­Canny & OBB overlap test) between all pairs of BV’s in a BV family is unified • Complications – deciding which BV to use either dynamically or statically PQP: Implementation PQP: Implementation • Library written in C++ • Good for any proximity query • 5­20x speed­up in distance computation over prior methods • Available at http://www.cs.unc.edu/~geom/SSV/ PQP: Technology Transfer PQP: Technology Transfer • Released in July’99 • More than 250 active users • Strong interest from Sony • Optimized for PS2 applications: only 1­2 routines need optimization Organization Organization • Multi­Body Environments – Sweep & Prune – Scheduling Scheme • Pairwise Proximity Queries – Convex Objects (Lin&Canny, SWIFT) – General Models (OBBTree, SSV) • Data Management Processing Large Geometric Databases for Massive Models Encode the proximity relationship with “overlap graphs” to partition massive 3D dataset into smaller, manageable datasets Localized Sub-graphs Database Scene Graph Overlap Graph System Architecture System Architecture Partition & Refine Graphs Proximity Queries Localized Sub­graphs Localized Sub­graphs • Reduce frequency of disk accessing • Runtime ordering & traversal • Localize region of contacts • Allow modification on the fly • Prefetch geometry 2D Objects 2D Objects • A simple environment consisting of polygons Object Bounding Boxes Object Bounding Boxes • Each object is bounded by a AABB. Object Nodes Object Nodes • Each node corresponds to an object. Overlap Graph Overlap Graph • Each edge corresponds to a potential overlap & each node has a weight proportional to object memory requirement (polygon # & hierarchies) Computing Connected Computing Connected Components • Identify cacheable components • Object decomposition • Find high­valence nodes • Multi­level graph partitioning …Repeat on the resulting cut graph till decomposing the overlap graph into localized subgraphs, such that the weight of each subgraph < memory cache size Algorithmic Choices Algorithmic Choices • Types of Bounding Volumes (e.g. spheres, AABBS, OBBs, etc.) • On­the­fly Hierarchy Construction & Lazy Evaluation IMMPACT: Implementation IMMPACT: Implementation • Written in C++ & OpenGL • Built on top of PQP (UNC­CH) • Use of METIS (University of Minnesota) • Real­time interaction with CAD models [Eurographics’99] IMMPACT: Demonstration IMMPACT: Demonstration Real-time Interaction with PowerPlant (15 million triangles) Technology Transfer & Feedback Technology Transfer & Feedback • 7 Collision Detection & Proximity Systems • More than 4500 downloads • More than 40 commercial licenses • The Collide Inc. handles licensing • Useful feedback from our users Collaborators Collaborators • • • • • • • • • • Dinesh Manocha John Canny (Berkeley) Jonathan Cohen (Johns Hopkins) Stephen Ehmann Stefan Gottschalk (NVidia) Eric Larsen (Sony R&D America) Brian Mirtich (MERL) Amol Pattekar (Yahoo) Krish Ponamgi Andy Wilson • • Intel MGL Research Group Sony PS2 R&D Group Acknowledgments Acknowledgments • Army Research Office • Honda • Intel • National Science Foundation • Office of Naval Research • Sloan Foundation ...
View Full Document

This note was uploaded on 12/09/2011 for the course CS 561/661 taught by Professor Lubke during the Summer '11 term at Virginia Tech.

Ask a homework question - tutors are online