Benoît Hudson - Berkeley Graphics Lunch

Slides:



Advertisements
Similar presentations
COSC 6114 Prof. Andy Mirzaian Quad Trees: Non-Uniform Mesh Generation.
Advertisements

Incremental Linear Programming Linear programming involves finding a solution to the constraints, one that maximizes the given linear function of variables.
Efficient access to TIN Regular square grid TIN Efficient access to TIN Let q := (x, y) be a point. We want to estimate an elevation at a point q: 1. should.
Surface Reconstruction From Unorganized Point Sets
CSE 681 Bounding Volumes. CSE 681 Bounding Volumes Use simple volume enclose object(s) tradeoff for rays where there is extra intersection test for object.
Dynamic Planar Convex Hull Operations in Near- Logarithmic Amortized Time TIMOTHY M. CHAN.
Approximation, Chance and Networks Lecture Notes BISS 2005, Bertinoro March Alessandro Panconesi University La Sapienza of Rome.
Jarvis March Graham Scan Chan’s Algorithm
5/2/2007Don Sheehy Overlay Stitch Meshing 1. 5/2/2007Don Sheehy Overlay Stitch Meshing 2 A competitive algorithm for no-large-angle triangulation Don.
By Groysman Maxim. Let S be a set of sites in the plane. Each point in the plane is influenced by each point of S. We would like to decompose the plane.
A polylogarithmic approximation of the minimum bisection Robert Krauthgamer The Hebrew University Joint work with Uri Feige.
A Fairy Tale of Greedy Algorithms Yuli Ye Joint work with Allan Borodin, University of Toronto.
Robert Pless, CS 546: Computational Geometry Lecture #3 Last Time: Convex Hulls Today: Plane Sweep Algorithms, Segment Intersection, + (Element Uniqueness,
1cs542g-term Notes. 2 Meshing goals  Robust: doesn’t fail on reasonable geometry  Efficient: as few triangles as possible Easy to refine later.
Delaunay Triangulation on the GPU Dan Maljovec. CPU Delaunay Triangulation Randomized Incremental Algorithm 1.Construct Bounding triangle 2.Choose point.
5/2/2007Don Sheehy Overlay Stitch Meshing 1. 5/2/2007Don Sheehy Overlay Stitch Meshing 2 A competitive algorithm for no-large-angle triangulation Don.
Tamal K. Dey The Ohio State University Delaunay Meshing of Surfaces.
Image Morphing : Rendering and Image Processing Alexei Efros.
New results on mesh refinement Benoît Hudson, CMU Joint work with Gary Miller and Todd Phillips Papers available at
1 Mesh Generation and Delaunay-Based Meshes Jernej Barbic Computer Science Department Carnegie Mellon University.
Image Morphing : Computational Photography Alexei Efros, CMU, Fall 2005 © Alexey Tikhonov.
Delaunay Triangulations for 3D Mesh Generation Shang-Hua Teng Department of Computer Science, UIUC Work with: Gary Miller, Dafna Talmor, Noel Walkington.
1 Mesh refinement: sequential, parallel, and dynamic Benoît Hudson, CMU Joint work with Umut Acar, TTI-C Gary Miller and Todd Phillips, CMU Papers available.
Voronoi diagrams of “nice” point sets Nina Amenta UC Davis “The World a Jigsaw”
External Memory Algorithms Kamesh Munagala. External Memory Model Aggrawal and Vitter, 1988.
Introduction Outline The Problem Domain Network Design Spanning Trees Steiner Trees Triangulation Technique Spanners Spanners Application Simple Greedy.
Lamps of Aladdin1 Moving Mesh Adaptation Techniques Todd Phillips Gary Miller Mark Olah.
How Robust are Linear Sketches to Adaptive Inputs? Moritz Hardt, David P. Woodruff IBM Research Almaden.
Good Triangulations and Meshing Lecturer: Ofer Rothschild 1.
Well Separated Pair Decomposition 16 GigaYears and 3.3 Million Light Years Playing.
Delaunay Triangulations Presented by Glenn Eguchi Computational Geometry October 11, 2001.
Department of Computer Science and Engineering Practical Algorithm for a Large Class of Domains Tamal K. Dey and Joshua A. Levine The Ohio State University.
Line Arrangement Chapter 6. Line Arrangement Problem: Given a set L of n lines in the plane, compute their arrangement which is a planar subdivision.
Pareto Linear Programming The Problem: P-opt Cx s.t Ax ≤ b x ≥ 0 where C is a kxn matrix so that Cx = (c (1) x, c (2) x,..., c (k) x) where c.
Center for Graphics and Geometric Computing, Technion 1 Computational Geometry Chapter 8 Arrangements and Duality.
Center for Graphics and Geometric Computing, Technion 1 Computational Geometry Chapter 8 Arrangements and Duality.
CSC-305 Design and Analysis of AlgorithmsBS(CS) -6 Fall-2014CSC-305 Design and Analysis of AlgorithmsBS(CS) -6 Fall-2014 Design and Analysis of Algorithms.
Delaunay Triangulation on the GPU
BOĞAZİÇİ UNIVERSITY – COMPUTER ENGINEERING Mehmet Balman Computer Engineering, Boğaziçi University Parallel Tetrahedral Mesh Refinement.
Unique Games Approximation Amit Weinstein Complexity Seminar, Fall 2006 Based on: “Near Optimal Algorithms for Unique Games" by M. Charikar, K. Makarychev,
UNC Chapel Hill M. C. Lin Delaunay Triangulations Reading: Chapter 9 of the Textbook Driving Applications –Height Interpolation –Constrained Triangulation.
Multimedia Programming 10: Image Morphing
12 July 2007Gary Miller Overlay Stitch Meshing 1 Size Competitive Meshing without Large Angles Gary L. Miller Carnegie Mellon Computer Science Joint work.
June 23, Variational tetrahedral meshing of mechanical models for FEA Matthijs Sypkens Smit Willem F. Bronsvoort CAD ’08 Conference, Orlando, Florida.
Center for Graphics and Geometric Computing, Technion 1 Computational Geometry Chapter 9 Line Arrangements.
Convex hulls in 3D Maciej Kot. Finding convex hull Given a set of points, find a convex hull that contains all of them and is minimal.
Mesh Generation, Refinement and Partitioning Algorithms Xin Sui The University of Texas at Austin.
CMPS 3130/6130 Computational Geometry Spring 2017
Randomized Incremental Algorithm for Delaunay Triangulation (DT) CS Gates 219 October 19, 3:00 – 4:20 Richard Zhang (for Leo G.) Disclaimer: All.
Image Morphing © Zooface Many slides from Alexei Efros, Berkeley.
Variational Tetrahedral Meshing
An Introduction to Computational Geometry
David Kauchak CS52 – Spring 2015
Haim Kaplan and Uri Zwick
Localizing the Delaunay Triangulation and its Parallel Implementation
Enumerating Distances Using Spanners of Bounded Degree
Ch 7: Quicksort Ming-Te Chi
Paul Beame in lieu of Richard Anderson
Generating Well-Shaped Delaunay Mesh
Dijkstra’s Algorithm for the Shortest Path Problem
Coverage Approximation Algorithms
On the effect of randomness on planted 3-coloring models
Delaunay Triangulation & Application
CSE373: Data Structures & Algorithms Implementing Union-Find
Localized Delaunay Refinement for Volumes
Exact Nearest Neighbor Algorithms
Kinetic Collision Detection for Convex Fat Objects
Computational Geometry
Amortized Analysis and Heaps Intro
Clustering.
Presentation transcript:

Benoît Hudson - Berkeley Graphics Lunch September 7, 2006 Benoît Hudson - Berkeley Graphics Lunch

Meshing in (nearly)-Optimal Time Benoît Hudson Carnegie Mellon University Joint work with Todd Phillips and Gary Miller (to appear IMR’06) September 7, 2006 Benoît Hudson - Berkeley Graphics Lunch

Benoît Hudson - Berkeley Graphics Lunch September 7, 2006 Benoît Hudson - Berkeley Graphics Lunch

Benoît Hudson - Berkeley Graphics Lunch September 7, 2006 Benoît Hudson - Berkeley Graphics Lunch

Benoît Hudson - Berkeley Graphics Lunch September 7, 2006 Benoît Hudson - Berkeley Graphics Lunch

Benoît Hudson - Berkeley Graphics Lunch September 7, 2006 Benoît Hudson - Berkeley Graphics Lunch

Benoît Hudson - Berkeley Graphics Lunch Running a simulation: Scientists provide model & equations incompressible Navier-Stokes flow Numerical analysts translate to a linear system Ax = b Finite Element Method Computational geometers produce finite element meshes September 7, 2006 Benoît Hudson - Berkeley Graphics Lunch

Benoît Hudson - Berkeley Graphics Lunch Bring me… a mesh September 7, 2006 Benoît Hudson - Berkeley Graphics Lunch

Benoît Hudson - Berkeley Graphics Lunch Formal statement Input: a PLC (points, segments, …) in Rd Output: Delaunay of input vertices plus Steiner points all features appear good radius-edge September 7, 2006 Benoît Hudson - Berkeley Graphics Lunch

Benoît Hudson - Berkeley Graphics Lunch Formal statement Input: a PLC (points, segments, …) in Rd Output: Delaunay of input vertices plus Steiner points conforms quality September 7, 2006 Benoît Hudson - Berkeley Graphics Lunch

Prior work: triangulations m: #vertices Prior work: triangulations L: largest distance s: smallest distance L/s º spread Normally: L/s Î poly(n) [Hudson/Miller/Phillips06] O(m + n lg L/s) in any dimension [Chew92]: guaranteed quality [Ruppert95]: quality AND size [Shewchuk97]: implementation (Triangle) Many: 3+D, fewer caveats Not many: time bounds. [Spielman/Teng/Üngör02]: O(polylog L/s) parallel [Miller04]: O( (m + n) polylog(L/s)) [Har-Peled/Üngör05]: O(m + n lg n) September 7, 2006 Benoît Hudson - Berkeley Graphics Lunch

Benoît Hudson - Berkeley Graphics Lunch Prior work: quadtrees 2D [Bern/Eppstein/Gilbert92]: O(m+ n lg n) assuming L/s Î poly(n) 3D [Mitchell/Vavasis99]: O(m + n lg n) for point sets; O(mn) with features More recent work: parallelize, reduce output size (cf. [Har-Peled/Üngör05]) September 7, 2006 Benoît Hudson - Berkeley Graphics Lunch

Benoît Hudson - Berkeley Graphics Lunch Outline Intro Ruppert’s algorithm Sparse Voronoi Refinement (SVR) SVR runtime proofs Implementation details Pie-in-the-sky September 7, 2006 Benoît Hudson - Berkeley Graphics Lunch

Ruppert’s algorithm on point sets Input: P Ì [1/3, 2/3]d Procedure: Add a bounding box B = {0, 0.5, 1.0}d Compute Delaunay of P È B While $ skinny triangle Insert its circumcenter September 7, 2006 Benoît Hudson - Berkeley Graphics Lunch

Benoît Hudson - Berkeley Graphics Lunch September 7, 2006 Benoît Hudson - Berkeley Graphics Lunch

Benoît Hudson - Berkeley Graphics Lunch September 7, 2006 Benoît Hudson - Berkeley Graphics Lunch

Benoît Hudson - Berkeley Graphics Lunch September 7, 2006 Benoît Hudson - Berkeley Graphics Lunch

Benoît Hudson - Berkeley Graphics Lunch September 7, 2006 Benoît Hudson - Berkeley Graphics Lunch

Benoît Hudson - Berkeley Graphics Lunch September 7, 2006 Benoît Hudson - Berkeley Graphics Lunch

Benoît Hudson - Berkeley Graphics Lunch September 7, 2006 Benoît Hudson - Berkeley Graphics Lunch

Benoît Hudson - Berkeley Graphics Lunch September 7, 2006 Benoît Hudson - Berkeley Graphics Lunch

Benoît Hudson - Berkeley Graphics Lunch September 7, 2006 Benoît Hudson - Berkeley Graphics Lunch

Benoît Hudson - Berkeley Graphics Lunch September 7, 2006 Benoît Hudson - Berkeley Graphics Lunch

Benoît Hudson - Berkeley Graphics Lunch September 7, 2006 Benoît Hudson - Berkeley Graphics Lunch

Benoît Hudson - Berkeley Graphics Lunch September 7, 2006 Benoît Hudson - Berkeley Graphics Lunch

Benoît Hudson - Berkeley Graphics Lunch September 7, 2006 Benoît Hudson - Berkeley Graphics Lunch

Benoît Hudson - Berkeley Graphics Lunch September 7, 2006 Benoît Hudson - Berkeley Graphics Lunch

Benoît Hudson - Berkeley Graphics Lunch September 7, 2006 Benoît Hudson - Berkeley Graphics Lunch

Ruppert: handling input segments When inserting circumcenter: If $ a segment near the point, yield to the segment: insert its midpoint instead Near º inside diametral circle of segment September 7, 2006 Benoît Hudson - Berkeley Graphics Lunch

Benoît Hudson - Berkeley Graphics Lunch Local feature size Define local feature size: lfs(p) º distance to 2nd nearest input from p Continuous version of nearest neighbour lfs(p) p September 7, 2006 Benoît Hudson - Berkeley Graphics Lunch

Benoît Hudson - Berkeley Graphics Lunch Ruppert: spacing Key theorem for Ruppert’s results: In the final mesh, for all vertices v: NN(v) ³ c lfs(v) Proof: induction over insertions. lfs(v) v NN(v) September 7, 2006 Benoît Hudson - Berkeley Graphics Lunch

Benoît Hudson - Berkeley Graphics Lunch Ruppert: runtime Output-sensitive: Input has n vertices and segments Output has m vertices Compute Delaunay of P È B: O(n lg n) While $ skinny triangle: O(m) iterations Insert its circumcenter: ??? September 7, 2006 Benoît Hudson - Berkeley Graphics Lunch

Ruppert: cost of insertions An insertion can cost O(m) Maybe not all can cost O(m)? September 7, 2006 Benoît Hudson - Berkeley Graphics Lunch

Jernej Barbic’s W(n2) proof Number of input points: n Number of output points: m=O(n) September 7, 2006 Benoît Hudson - Berkeley Graphics Lunch

Benoît Hudson - Berkeley Graphics Lunch Delaunay triangulation of the input: Lots of skinny triangles. We choose to split the one shaded in grey. September 7, 2006 Benoît Hudson - Berkeley Graphics Lunch

Benoît Hudson - Berkeley Graphics Lunch Big “fan” of triangles appears: high cost September 7, 2006 Benoît Hudson - Berkeley Graphics Lunch

Benoît Hudson - Berkeley Graphics Lunch We have established a self-repeating pattern … September 7, 2006 Benoît Hudson - Berkeley Graphics Lunch

Benoît Hudson - Berkeley Graphics Lunch Lots of work continues… September 7, 2006 Benoît Hudson - Berkeley Graphics Lunch

Benoît Hudson - Berkeley Graphics Lunch Total work proven to be:  (n2) Number of input points: O(n) Number of output points: m=O(n) September 7, 2006 Benoît Hudson - Berkeley Graphics Lunch

Benoît Hudson - Berkeley Graphics Lunch 3D: W(n2) example Picture due to Sariel Har-Peled, FOCS’01 September 7, 2006 Benoît Hudson - Berkeley Graphics Lunch

Benoît Hudson - Berkeley Graphics Lunch 3D: W(very bad) example Initial Delaunay has W(n2) tetrahedra. W(n2) work to build it; worse: W(n2) space Likely possible to get W(n3) work. [Erickson01]: “Nice point sets can have nasty Delaunay triangulations” [Me]: natural examples probably OK, but engineered surfaces look like worst-case examples. September 7, 2006 Benoît Hudson - Berkeley Graphics Lunch

Benoît Hudson - Berkeley Graphics Lunch Does it matter? Situation: user needs one mesh, which will be heavily used. Production time is almost irrelevant. Output size is critical. Situation: mesh used only once. Production time is a limiting factor. September 7, 2006 Benoît Hudson - Berkeley Graphics Lunch

Benoît Hudson - Berkeley Graphics Lunch Outline Intro Ruppert’s algorithm Sparse Voronoi Refinement (SVR) SVR runtime proofs Implementation details Pie-in-the-sky September 7, 2006 Benoît Hudson - Berkeley Graphics Lunch

Benoît Hudson - Berkeley Graphics Lunch SVR: intuition All bad examples have arbitrarily skinny triangles Fix: Never allow quality to fall excessively September 7, 2006 Benoît Hudson - Berkeley Graphics Lunch

SVR vs. Ruppert Input: P Ì [1/3, 2/3]d Procedure: Circumcircle has radius r. Yield if $ point at dist (1-e) r Input: P Ì [1/3, 2/3]d Procedure: Add a bounding box B = {0, 0.5, 1.0}d Compute Delaunay of P È B While $ triangle that is skinny OR contains uninserted input Try to insert its circumcenter If $ nearby uninserted point, yield to it September 7, 2006 Benoît Hudson - Berkeley Graphics Lunch

Benoît Hudson - Berkeley Graphics Lunch SVR: intuition All bad examples have arbitrarily skinny triangles Fix: Never allow quality to fall excessively Catch-phrase: Ruppert refinement conforms immediately, then iteratively achieves quality SVR achieves quality immediately, then iteratively conforms We interleave conforming and refinement September 7, 2006 Benoît Hudson - Berkeley Graphics Lunch

Benoît Hudson - Berkeley Graphics Lunch SVR: example September 7, 2006 Benoît Hudson - Berkeley Graphics Lunch

SVR and input features (2D) Almost same as Ruppert, but: Must check for yielding to input points before Checking for yielding to segments. September 7, 2006 Benoît Hudson - Berkeley Graphics Lunch

Benoît Hudson - Berkeley Graphics Lunch SVR: spacing In the final mesh, for all vertices v: NN(v) ³ c lfs(v) Proof: same as for Ruppert Yields size optimality for point sets lfs(v) v NN(v) September 7, 2006 Benoît Hudson - Berkeley Graphics Lunch

Benoît Hudson - Berkeley Graphics Lunch Outline Intro Ruppert’s algorithm Sparse Voronoi Refinement (SVR) SVR runtime proofs Implementation details Pie-in-the-sky September 7, 2006 Benoît Hudson - Berkeley Graphics Lunch

Benoît Hudson - Berkeley Graphics Lunch SVR: key property One key lemma to prove them all: No triangle has radius-edge > r’ Proof Sketch: Bad quality º big empty circle near dense points Variant of sizing proof Þ cleaning skinnies is safe (doesn’t create dense packings) Other variant Þ conforming is safe Empty circles don’t grow September 7, 2006 Benoît Hudson - Berkeley Graphics Lunch

Benoît Hudson - Berkeley Graphics Lunch SVR: runtime Compute Delaunay of B: O(1) While $ bad triangles: O(m) iterations Insert its circumcenter or yield: ??? September 7, 2006 Benoît Hudson - Berkeley Graphics Lunch

Benoît Hudson - Berkeley Graphics Lunch SVR: two costs What’s the cost of inserting a point into the Delaunay triangulation? How do we keep track of uninserted inputs? September 7, 2006 Benoît Hudson - Berkeley Graphics Lunch

Benoît Hudson - Berkeley Graphics Lunch SVR: insert cost SVR mesh always has good radius/edge [MTTW’96] prove good radius/edge Þ bounded degree Bounded degree Þ each insertion is O(1) September 7, 2006 Benoît Hudson - Berkeley Graphics Lunch

Benoît Hudson - Berkeley Graphics Lunch SVR: point location Point location data structure: each triangle holds a set of uninserted points. Insertion: fix point / triangle mapping Query: " triangle t intersecting grey circle, " points p in t, check if p Î grey circle September 7, 2006 Benoît Hudson - Berkeley Graphics Lunch

Benoît Hudson - Berkeley Graphics Lunch Point location costs Fact: Insertion creates O(1) triangles [due to quality] O(1) time per point for relocation Fact: Empty circles intersect O(1) triangles [due to quality] Þ O(1) triangles checked in query O(1) time per point checked September 7, 2006 Benoît Hudson - Berkeley Graphics Lunch

Benoît Hudson - Berkeley Graphics Lunch Point location costs But: can have O(n) points in the triangles! Amortize: want all unaccounted costs to sum to O(n lg n) Use a packing argument [STU02], [Miller04] September 7, 2006 Benoît Hudson - Berkeley Graphics Lunch

Insert relocation cost NN(q) q is a new vertex destroys p’s triangle forces relocation Fact: NN(q) Î Q |pq| q p September 7, 2006 Benoît Hudson - Berkeley Graphics Lunch

Benoît Hudson - Berkeley Graphics Lunch Ball packing q1 Consider insertions at distance [d,2d] Each has empty ball of radius Q(d) Þ O(1) balls max Þ O(lg L/s) total relocations per input q3 q5 q2 p q4 September 7, 2006 Benoît Hudson - Berkeley Graphics Lunch

Benoît Hudson - Berkeley Graphics Lunch Query costs Query looks at p from q Point q’ is inserted near q. Fact: |pq| ~ NN(q) And NN(q) ~ NN(q’) Þ Packs like insert case (1-e) q’ q p September 7, 2006 Benoît Hudson - Berkeley Graphics Lunch

Benoît Hudson - Berkeley Graphics Lunch Outline Intro Ruppert’s algorithm Sparse Voronoi Refinement (SVR) SVR runtime proofs Implementation details Pie-in-the-sky September 7, 2006 Benoît Hudson - Berkeley Graphics Lunch

Benoît Hudson - Berkeley Graphics Lunch Knobs to turn ~20° in 2d Quality (radius/edge) bound r Yield restriction e For termination, need: r (1-e)d ³ 2d-3/2 Mesh size: shrinks as e ® 0, r ® ¥ Runtime: grows as e ® 0 until O(méd/2ù+1) Runtime: ??? as r ® ¥ or r ® 0 Guess: want e almost 0, r smaller than √2 September 7, 2006 Benoît Hudson - Berkeley Graphics Lunch

Benoît Hudson - Berkeley Graphics Lunch Decisions to make Many decisions are left arbitrary: what input point to yield to which skinny triangle to fix which non-empty triangle to refine No good sense yet; need experiments. Probable: pick closest point; fix biggest (or smallest?) triangle September 7, 2006 Benoît Hudson - Berkeley Graphics Lunch

Circumcenters / Off-centers Any point near circumcenter works Ungor: off-centers: defined to create a fat triangle Off-centers should work in SVR also September 7, 2006 Benoît Hudson - Berkeley Graphics Lunch

Curse of dimensionality Bounds assume d is O(1): hide 2O(d) terms. If d ~ Q(log log n), add a O(log n) factor If d ~ Q(log n), let’s go shopping n ~ 1 billion Þ log n ~ 30 Rule of thumb: break down at d ~ 10 We live in 3-D Þ meshing works September 7, 2006 Benoît Hudson - Berkeley Graphics Lunch

Less fundamental restrictions SVR now: input features highly restricted must intersect at ³ 90° must have O(1) points on convex hull must have bounded aspect ratio (no struts) SVR now: builds conforming Delaunay prefer constrained Delaunay Future work. September 7, 2006 Benoît Hudson - Berkeley Graphics Lunch

Benoît Hudson - Berkeley Graphics Lunch Future work Input points affected only O(lg L/s) times Almost certainly can be done in parallel: O(polylog(L/s)) steps with O(m) processors. O(polylog(L/s)) steps with ¥ processors is best known [STU92] September 7, 2006 Benoît Hudson - Berkeley Graphics Lunch

Benoît Hudson - Berkeley Graphics Lunch More Future work Input points affected only O(lg L/s) times Almost certainly can be done dynamically: A new point should affect only O(lg L/s) decisions. Preliminary [with Acar, unpublished] September 7, 2006 Benoît Hudson - Berkeley Graphics Lunch

Benoît Hudson - Berkeley Graphics Lunch Remember only this SVR produces: a small simplicial mesh in optimal time handles input features (segments, faces, …) Key property: always bounded quality: SVR achieves quality immediately, then iteratively conforms September 7, 2006 Benoît Hudson - Berkeley Graphics Lunch