Computing the Delaunay triangulation for PDB data Yuanxin(‘Leo’) Liu Jack Snoeyink.

Post on 18-Jan-2016

224 Views

Category:

Documents

0 Downloads

Preview:

Click to see full reader

Transcript

Computing the Delaunay triangulation for PDB data

Yuanxin(‘Leo’) Liu Jack Snoeyink

GoalImprove the performance of 3D Delaunay tessellation software

for Protein applications

Yuanxin Liu
ana.surface volume packing,4-body potential

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

top related