A Fast Algorithm for Incremental Distance Calculation Paper by Ming C. Ling and John F. Canny Presented by Denise Jones.

Slides:



Advertisements
Similar presentations
Everything you ever wanted to know about collision detection
Advertisements

2.4. Primitive Tests - Closest point
Chapter 4.2 Collision Detection and Resolution. 2 Collision Detection Complicated for two reasons 1. Geometry is typically very complex, potentially requiring.
Collision Detection and Resolution Zhi Yuan Course: Introduction to Game Development 11/28/
I. The Problem of Molding Does a given object have a mold from which it can be removed? object not removable mold 1 object removable Assumptions The object.
Overlay of Two Subdivisions
Introduction to Collision Detection & Fundamental Geometric Concepts Ming C. Lin Department of Computer Science University of North Carolina at Chapel.
Advanced Computer Graphics Spring 2014
Chapter 12: Surface Area and Volume of Solids
CSE 872 Dr. Charles B. Owen Advanced Computer Graphics1 Basic 3D collision detection We want to know if objects have touched Objects are considered to.
High-Quality Simplification with Generalized Pair Contractions Pavel Borodin,* Stefan Gumhold, # Michael Guthe,* Reinhard Klein* *University of Bonn, Germany.
UNC Chapel Hill M. C. Lin References Collision Detection between Geometric Models: A Survey, by M. Lin and S. Gottschalk, Proc. of IMA Conference on Mathematics.
1 Geometry A line in 3D space is represented by  S is a point on the line, and V is the direction along which the line runs  Any point P on the line.
OBBTree: A Hierarchical Structure for Rapid Interference Detection Gottschalk, M. C. Lin and D. ManochaM. C. LinD. Manocha Department of Computer Science,
Computing the Delaunay Triangulation By Nacha Chavez Math 870 Computational Geometry; Ch.9; de Berg, van Kreveld, Overmars, Schwarzkopf By Nacha Chavez.
Providing Haptic ‘Hints’ to Automatic Motion Planners Providing Haptic ‘Hints’ to Automatic Motion Planners by Burchan Bayazit Department of Computer Science.
Computer graphics & visualization Collision Detection – Narrow Phase.
Chapter 12 Surface Area and Volume. Topics We Will Discuss 3-D Shapes (Solids) Surface Area of solids Volume of Solids.
Exploring Solids. What is a Polyhedron? Polyhedrons Non-Polyhedrons.
9-4 Geometry in Three Dimensions  Simple Closed Surfaces  Regular Polyhedra  Cylinders and Cones.
12/4/2001CS 638, Fall 2001 Today Using separating planes/axes for collision testing Collision detection packages.
Chapter 15: Geometric Solids Brian BarrDan Logan.
UNC Chapel Hill M. C. Lin Point Location Chapter 6 of the Textbook –Review –Algorithm Analysis –Dealing with Degeneracies.
Warm-up Review Take Home Quizzes. There will be a 3 question In Class Quiz based on them.
CS 450: Computer Graphics REVIEW: OVERVIEW OF POLYGONS
Domain testing Tor Stålhane. Domain testing revisited We have earlier looked at domain testing as a simple strategy for selecting test cases. We will.
Introduction Tracking the corners Camera model and collision detection Keyframes Path Correction Controlling the entire path of a virtual camera In computer.
Prisms Fun with by D. Fisher
A D V A N C E D C O M P U T E R G R A P H I C S CMSC 635 January 15, 2013 Quadric Error Metrics 1/20 Quadric Error Metrics.
Haptic rendering Part 1 4/CY/B3 Part 1. Collision detection and response Nic Melder Part 2. Manipulation and polygon transitions (T.B.A.)
Two-Dimensional Viewing
Vertex – A point at which two or more edges meet Edge – A line segment at which two faces intersect Face – A flat surface Vertices, Edges, Faces.
Collision handling: detection and response
January 21,  Slope: the ratio of the difference of the vertical distance (rise) to the difference of the horizontal distance (run)  Vertical Change:
Computer Animation Rick Parent Computer Animation Algorithms and Techniques Collisions & Contact.
3.4. C ONTACT G ENERATION Generating contacts between rigid bodies.
Section 8.4 Nack/Jones1 Section 8.4 Polyhedrons & Spheres.
Haptic Rendering Part 2 4/CY/B3 Part 1. Collision detection and response Nic Melder Part 2. Manipulation and polygon transitions Nic Melder.
Three-Dimensional Solids Polyhedron – A solid with all flat surfaces that enclose a single region of space. Face – Each flat surface of the polyhedron.
Parallel lines, transversals and angles
Warm-Up 1) Draw a polygon that is not convex. 2) Find the measure of an exterior angle of a regular decagon. 3) Find the circumference and area of a circle.
12.1 – Explore Solids.
Objective - To identify features of three-dimensional solids.
Gauss’s Law Dominic Berry University of Waterloo Griffith University 8 February, 2011 What does it mean? How do we use it?
Chapter Area, Pythagorean Theorem, and Volume 14 Copyright © 2013, 2010, and 2007, Pearson Education, Inc.
Geometry: A Year Around By: Kourtney Mansfield. Chapter 1: Points, Lines, and Planes Point – Has no dimension. Usually represented by a small dot. Point.
12.1 Exploring Solids.
Ch 12 and 13 Definitions. 1. polyhedron A solid with all flat surfaces that enclose a single region of space.
Angle Relationships.
Section 12-1 Exploring Solids. Polyhedron Three dimensional closed figure formed by joining three or more polygons at their side. Plural: polyhedra.
A Fast Algorithm for Incremental Distance Calculation Ming C. Lin and John F. Canny University of California, Berkeley 1991 Original slides by Adit Koolwal.
Advanced Computer Graphics Spring 2014 K. H. Ko School of Mechatronics Gwangju Institute of Science and Technology.
A Fast Algorithm for Incremental Distance Calculation Ming C. Lin & John Canny University of California, Berkeley 1991 Presentation by Adit Koolwal.
Visible-Surface Detection Methods. To identify those parts of a scene that are visible from a chosen viewing position. Surfaces which are obscured by.
Computational Geometry
Minkowski Sums and Distance Computation Eric Larsen COMP
Polyhedra and Prisms.
Surface Area and Volume
Engineering Geometry Engineering geometry is the basic geometric elements and forms used in engineering design. Engineering and technical graphics are.
3D Rendering Pipeline Hidden Surface Removal 3D Primitives
Introduction Think about resizing a window on your computer screen. You can stretch it vertically, horizontally, or at the corner so that it stretches.
I. The Problem of Molding
Vertical Angles Vertical angles are across from each other and are created by intersecting lines.
Computer Animation Algorithms and Techniques
11.5 Explore Solids Mrs. vazquez Geometry.
Geometry Chapter : Exploring Solids.
14 Chapter Area, Pythagorean Theorem, and Volume
Point To Triangle(intro)
Polygons.
3.3: Rectangle Collisions
Presentation transcript:

A Fast Algorithm for Incremental Distance Calculation Paper by Ming C. Ling and John F. Canny Presented by Denise Jones

Algorithm Concept A method for calculating the closest features on two convex polyhedra Algorithm is complete (will always find closest features between 2 polyhedra) Can be used for: –Collision detection –Motion planning –Distance between objects in 3-D space

Algorithm Concept Apply applicability criteria to features (vertices, edges, faces) of each polyhedron Without any initialization, running time of the algorithm is linear for the number of vertices With initialization, running time is constant Can detect collision –Returns an error and features that have collided or intersected

Efficiency Once the closest features are determined, these will change infrequently When a change does occur, the new closest features will usually be on a boundary of the previous closest features.

Efficiency Exceptions Initial features are parallel and on opposite sides (only on initialization) Exceptions after initialization Parallel faces Before RotationAfter Rotation

Applicability Criterion: Point-Vertex Determine planes that are perpendicular to coboundary (edges) of the vertex Point must be contained within the boundary of these planes in order to be the closest point If outside one of the boundaries, indicates that edge is closer and will perform the test on that edge.

Applicability Criterion: Point-Vertex Voronoi Region Vertex Point

Applicability Criterion: Point-Edge Determine region created by planes perpendicular to the head and tail of the edge and perpendicular to the coboundaries (faces) Point must be contained within the boundary of these planes in order for edge to be the closest feature If outside one of the boundaries, indicates corresponding feature is closer and will “walk” to the next feature and apply the appropriate test.

Applicability Criterion: Point-Edge Point Edge Voronoi Space

Applicability Criterion: Point-Face Determine planes that are perpendicular to each edge of the face Point must be contained within the applicability prism (region comprised of these planes and the edges of the face) If outside one of the boundaries, indicates that edge is closer and performs the test for the corresponding edge. If point lies below the face, two possibilities –Collision –Another feature is closer than face or any of edges Algorithm will return closest feature

Applicability Criterion: Point-Face Point Face Voronoi Space

Algorithm Cases Vertex-Vertex Vertex-Edge Vertex-Face Edge-Edge Edge-Face Face-Face

Algorithm Example Determine closest features on the following polyhedra Randomly choose 2 features

Algorithm Example: Vertex-Vertex Both vertices must meet point-vertex applicability criteria If either fails, will return vertex and corresponding edge

Algorithm Example: Vertex-Vertex Test fails Voronoi Region Vertex Point

Algorithm Example: Vertex-Edge Edge must meet point-edge criterion Vertex must meet point-vertex criterion for closest point on edge to vertex If either fails, will return new feature pair based on failed test

Algorithm Example: Vertex-Edge Test fails Point Edge Voronoi Space Closest point to vertex on edge

Algorithm Example: Vertex-Face Face must meet point-face criterion Vertex must meet point-vertex criterion for closest point on face to vertex If either fails, will return new feature pair based on failed test

Algorithm Example: Vertex-Face Test passes for both criteria As polyhedra continue along their trajectories, the necessary tests are reapplied starting with the last one performed. Usually only one test will be required. Vertex Face Voronoi Space Closest point to vertex on face

Motion Planning Discretization a factor in collision-avoidance. Location 2 Location 1

Conclusion Algorithm calculates closest features on 2 convex polyhedra Algorithm is relatively simple Algorithm is efficient –Runs in constant time once initialized –Runs linearly in proportion to number of vertices when initializing Algorithm is complete

Data Structures and Concavity Polyhedron: faces, edges, vertices, position, and orientation Face: outward normal, distance from origin, vertices, edges, and coboundary Edge: head, tail, right face, and left face Vertex: x, y, z, and coboundary Polyhedron must be convex A concave polyhedron must be converted to multiple convex polyhedra –May effect efficiency (quadratic)

Algorithm: Edge-Face Determine if they are parallel If parallel, they are closest features if both: –The edge passes through the applicability prism created by the face –The normal of the face being evaluated is between the normals of each face bounding the edge being evaluated

Algorithm: Edge-Face If not parallel –One of the vertices of the edge is closer to the face if it meets the point-face applicability criterion and the edge points into the face, and this pair is returned –If this criterion is not met, the edge-edge component of the algorithm is applied to the edge bounding the face that is closest to the edge and the edge under examination.

Algorithm: Edge-Face Applicability Prism Edge (Parallel to Face)

Algorithm: Edge-Face Test Failure Vertex closer to face than edge Edge (Not Parallel to Face)

Algorithm: Edge-Face Test Failure Test Failure Edge closer to edge than face Edge (Not Parallel to Face)

Algorithm: Edge-Edge Determine closest points on the edges Apply point-edge applicability criteria to each pair If either fails, will return new feature pair based on failed test

Algorithm: Edge-Edge Nearest Points

Algorithm: Face-Face Determine if faces are parallel If parallel –Check to see if overlapping, if so, they are closest features If not parallel or not overlapping –Return first face and nearest edge of second face to first face

Algorithm: Face-Face Parallel Faces