Upload
dinah-hill
View
225
Download
0
Tags:
Embed Size (px)
Citation preview
Computing the Delaunay triangulation for PDB data
Yuanxin(‘Leo’) Liu Jack Snoeyink
GoalImprove the performance of 3D Delaunay tessellation software
for Protein applications
Delaunay Tessellation in 3D• Theory
– output size: O(n2)
• Practice– distribution
– locality of reference
– numeric precision
Delaunay Tessellation in 3D• Existing technologies
– CGAL [J.-D. Boissonnat, O. Devillers, S. Pion, M. Teillaud, and M. Yvinec 02]
– Qhull [Barber, Dobkin, and Huhdanpaa 96]
– ProShape [P. Koehl, M. Levitt, and H. Edelsbrunner 02 ]
– BRIO [N. Amenta, S. Choi and G. Rote 03]
Delaunay Tessellation in 3D• What’s New?
– Orders the points based on space filling curve.
– Stores spheres to reduce the
number of multiplications.
– Compact, table-based data structures
– Avoid the numerical problems by “leveling”.
Space-Filling Curve• Hilbert Curve
2D
Space-Filling Curve• Hilbert Curve
3D
Space-Filling Curve• Cache-friendly permutation
– First pass: • count • prefix sum
– Second pass:• Permute the points
Space-Filling Curve• Cache-friendly permutation
– First pass: • count • prefix sum
– Second pass:• Permute the points 1
3
2
1
Space-Filling Curve• Cache-friendly permutation
– First pass: • count • prefix sum
– Second pass:• Permute the points 0
1
4
6
Space-Filling Curve• Cache-friendly permutation
– First pass: • count • prefix sum
– Second pass:• Permute the points 0
1
4
6
0 1 2 3 4 5 6
Space-Filling Curve• Cache-friendly permutation
– First pass: • count • prefix sum
– Second pass:• Permute the points 0
1
4
6
0 1 2 3 4 5 6
Space-Filling Curve• Other curves
row-major snake
Z-order spiral
Gray-code data-dependent
Sphere-based Computations• InSphere test: S q
• Orientation test with plane : P12 q
S
S2
S1
q
Sphere-based Computations• Orientation test
with plane : P12 q
P12 = ( S1 ∞ ) S2 - ( S2 ∞ ) S1
P12 q = (( S1 ∞ ) S2) q – (( S2 ∞ ) S1 ) q = (( S1 ∞ )(S2 q) – (( S2 ∞ )(S1
q )
S2
S1
q
Compact Data structures• Vertex Array
• Corner Array
• Sphere Array
{x1 y1 z1}
{x2 y2 z2}
… …
… …
Tetra1 Tetra2
S1 S2 … …
S2S1
Corners are ordered “canonically”.
Compact Data structures• Canonical Ordering of Corners
a b c d b a c e… …
Tetra1 Tetra2d
Canonical order: lexigraphically smallest ordering thatgives positive orientation
e
a
b
c
“Leveling”• Grouping points together that have
the same trailing bit pattern
101000 101100 111100 111000 100010 111110
1st level
2nd level
3rd level
Experiments• Comparison against Qhull
20000 40000 60000 80000 100000 120000
2
4
6
8 Qhull
Our program
Experiments• Comparison against Qhull
0 200000 400000 600000 800000
0
100
200
300
400 Qhull
Our program
Experiments• Comparison between space filling
curves
1 2 3 4 5 6 7 8
0.00001
0.00002
0.00003
0.00004
Hilbert rowmajor gray zorder snake random data dependentspiral
On-going Experiments•
tetras created
time