: Convex Hull construction via Star-Shaped Polyhedron in 3D
description
Transcript of : Convex Hull construction via Star-Shaped Polyhedron in 3D
: Convex Hull construction via Star-Shaped Polyhedron in 3D
Mingcen GaoThanh-Tung Cao
Tiow-Seng TanZhiyong Huang
Flip- Flop
2
Outline
Flips on 3D polyhedron
Flip-Flop: a novel flip algorithm
ffHull: 3D convex hull algorithm
Experiments
3
Flips on 3D polyhedron1 Convex Hull in 3D
Convex Hull
• Fundamental problem in CG• Collision detection• Path planning
• CGAL (CPU)• qHull (CPU)• gHull (GPU) [Gao et al. 2012]
Point set
4
Flips on 3D polyhedron1
Flips ?
Compute CH by flips
non-extreme points reflex edges
3-1 Edge 2-2 Edge
3-1 flip 2-2 flip
some polyhedron convex hull
• Simple• Local• Parallel
5
Flips on 3D polyhedron1 Compute CH by flips
Greedy strategy: flip reflex edges onlyDifficulty 1: self-intersection
Difficulty 2: stuck case
Lawson’s flip algorithm
some polyhedron convex hull
?
6
Flips on 3D polyhedron1
Difficulty 1: Avoiding self-intersection
Avoid self-intersection
2D illustration
2-1 flip
Solution: star-shaped polyhedron
7
Flips on 3D polyhedron1
Star-shaped polyhedron
s
2D 3D
In star-shaped polyhedron, checking whether a flip creates self-intersection is a local operation.
Avoid self-intersection
Easy to construct from
point set
8
Flips on 3D polyhedron1
Difficulty 2: Resolving the stuck case
Resolve stuck case
Flipping any reflex edges creates self-intersection.
Solution: Flip-Flop (for star-shaped polyhedron)
top viewreflex edge
9
Flips on 3D polyhedron
Flip-Flop: a novel flip algorithm
ffHull: 3D convex hull algorithm
Experiments
Outline
10
Flip-Flop: a novel flip algorithm2 An example
abe d
c
p
f
abe d
c
p
f
abe d
c
p
f
abe d
c
p
f
abe d
c
p
fnon-extreme point
2-2 flip (cd → af)3-1 flip on d
3-1 flip on e
3-1 flip on f
11
Flip-Flop: a novel flip algorithm2 An example
Flips
Volume
Local optimum
Convex hull
Lawson’s flip
Flip-Flop
“flip” “flop”
12
Flip-Flop: a novel flip algorithm2 Concepts
Flip-Flop
Increase the volume by flips
Find non-extreme points Remove non-extreme points by flips
Star-shapedpolyhedron Convex hull
13
Flip-Flop: a novel flip algorithm2 Find non-extreme points
b v
c
a
s
v is inside tetrahedron sabc
2-2 edge bv cannot be flipped
v is non-extreme
bv is reflex
b and v lie in the same side of the plane sac
b v
c
a
s
14
Flip-Flop: a novel flip algorithm2 Remove non-extreme points
degree(v)=5 degree(v)=4 degree(v)=3 degree(v)=0
If degree(v)>3, degree can be reduced by a 2-2 flip
For a non-extreme point v, decreases its Degree by flipping the edges incident to it
If degree(v)=3, it can be removed by a 3-1 flip
v can be removed
15
Flip-Flop: a novel flip algorithm2 Remove non-extreme points
An edge can be flipped if the polyhedron is still star-shaped w.r.t. s after flipping it
b
v
c a
s
d
flip va
b
v
c a
s
d
v is an extreme point!no edge incident to v can be flipped
16
Flip-Flop: a novel flip algorithm2 GPU implementation
while it is not convex hull
▲ ▲ ▲ ▲ ▲ ▲ ▲1. Identify and label non-extreme points.2. If no edges need be flipped, stop the thread.
△ △▲ ▲ ▲ ▲ ▲
▲ ▲▲ ▲ ▲ ▲ ▲Flip the edge if all included triangles are still labeled by the thread.
Label the triangles included in the flip by atomic minimum operation.
17
Flips on 3D polyhedron
Flip-Flop: a novel flip algorithm
ffHull: 3D convex hull algorithm
Experiments
Outline
18
ffHull: 3D convex hull algorithm3 Algorithm
Point set
• Find 4 extreme points• Construct initial tetrahedron• Compute kernel point
Apply Flip-Flop
Grow by parallel insertion with “furthest points” for every triangle
Star-shaped polyhedron
Convex hull
19
ffHull: 3D convex hull algorithm3 GPU implementation
while it is not convex hull
▲ ▲ ▲ ▲ ▲ ▲ ▲
If the triangle are associated with some points, insert the “furthest” one.
Update the associated triangle of the point if needed.
▲ ▲ ▲ ▲ ▲ ▲ ▲ ▲ ▲ ▲ ▲ ▲▲△ △ ▲ ▲
● ● ● ● ● ● ● ● ● ● ● ● ●
20
ffHull: 3D convex hull algorithm3 Extensions
ffRT: 2D regular triangulation algorithm
Compute many convex hulls concurrently
Point set
Lift points by z=x2+y2-w
Compute lower hull
Point set 1
Point set n
… …
Tetrahedron
… … …
Apply ffHull on all groups
21
Flips on 3D polyhedron
Flip-Flop: a novel flip algorithm
ffHull: 3D convex hull algorithm
Experiments
Outline
22
Experiments4
Machine: • Intel i7 2600K 3.4GHz CPU• 16GB of DDR3 RAM• NVIDIA GTX 580 Fermi GPU with 3GB of video memory
23
Experiments4 Convex hull
Ball of radius 0.51.4x↑ v.s. gHull20x↑ v.s. qHull81x↑ v.s. CGAL
Cube2.4x↑ v.s. gHull18x↑ v.s. qHull66x↑ v.s. CGAL
Box (thickness 0.01)3.2x↑ v.s. gHull23x↑ v.s. qHull75x↑ v.s. CGAL
Sphere (thickness 0.01)1.3x↑ v.s. gHull30x↑ v.s. qHull110x↑ v.s. CGAL
24
Experiments4 Convex hull
Thai statue1.4x↑ v.s. gHull5.5x↑ v.s. qHull12x↑ v.s. CGAL
Lucy1.1x↑ v.s. gHull7.2x↑ v.s. qHull17x↑ v.s. CGAL
25
Conclusions5is provably correct
uses only local operations
works for any star-shaped polyhedron
allows any order of flips
Flip-FlopGPU friendly
ffHullGPU friendly
ffRTGPU friendly