reconstruction and geometric...

Post on 21-Jan-2020

5 Views

Category:

Documents

0 Downloads

Preview:

Click to see full reader

TRANSCRIPT

Reconstruction and Geometric Algorithms

Romain Vergne

2014 - 2015

InterpolationFunction Parameters

Linear Shepard

Shepard Polynomial

InterpolationFunction Parameters

Linear Shepard

Shepard Polynomial

InterpolationFunction Parameters

Hermite Spline

InterpolationFunction Parameters

Tensor Product

InterpolationFunction Parameters

LinearHermite

Coons

Laplace/Poisson InterpolationFunctions f( x, y ) = z

Original

10 %

3D Version

3D Version

Subdivision Curves

Chaikin 1 Chaikin 2

Catmull-Clark (approx) 4 points (interp)

Subdivision Surfaces

Data Loop

Catmull-Clark

Subdivision Surfaces

Triangulated Surface Subdivision Butterfly

Triangulated Surface Butterfly modified

Least Squares

y = ax + b y = ax2 + bx + c

y = ax3 + bx2 + cx + d

Total Least Squares

ax + by + c = 0

PCA LS vs. TLS

Moving Least Squares

Convex Hull

Incremental

Quick Hull

Delaunay Triangulation

Delaunay Triangulation

Relationship with the convex hull

Crust

PLAN

• Introduction

• Parameterized / Ordered data

• Reconstruction of unorganized data

– Explicit methods

– Implicit methods

Implicit Methods

Explicit vs. Implicit

Moving Least Squares

Data in the reference frame Oxy

Moving Least Squares

Line fitting using least square

Moving Least Squares

Coordinate system Bxy attached to the line

Moving Least Squares

Approximating Y = f( X ) in the coordinate system Bxy

Moving Least Squares

Approximating Y = f( X ) in the coordinate system Bxy

Reorientation of Normals

Choice of neighbors of each point

Reorientation of Normals

Determination of reference

Reorientation of Normals

Obtaining non-oriented normals

Reorientation of Normals

Objective: To re-orient normals

Reorientation of Normals

Construction of the proximity graph G of the set of points Pi

Reorientation of Normals

Edge e = ( i, j ) : d( Pi, pj ) ≤ r and i ≠ j

Reorientation of Normals

Valuation of the graph v(e) (value of the edge e(i, j))v(e) = 1 - |ni nj|

Reorientation of Normals

Computation of A : Minimum spanning tree of G

Reorientation of Normals

Before re-orientation

Reorientation of Normals

Traverse the tree and re-orient

Reorientation of Normals

Traverse the tree and re-orient

Reorientation of Normals

Traverse the tree and re-orient

Reorientation of Normals

Traverse the tree and re-orient

Reorientation of Normals

Traverse the tree and re-orient

Reorientation of Normals

Traverse the tree and re-orient

Reorientation of Normals

Traverse the tree and re-orient

Reorientation of Normals

Traverse the tree and re-orient

Reorientation of Normals

Traverse the tree and re-orient

Reorientation of Normals

Traverse the tree and re-orient

Reorientation of Normals

Traverse the tree and re-orient

Reorientation of Normals

Traverse the tree and re-orient

Reorientation of Normals

Traverse the tree and re-orient

Reorientation of Normals

Traverse the tree and re-orient

Reorientation of Normals

Traverse the tree and re-orient

Reorientation of Normals

Traverse the tree and re-orient

Reorientation of Normals

Traverse the tree and re-orient

Reorientation of Normals

Traverse the tree and re-orient

Reorientation of Normals

Traverse the tree and re-orient

Reorientation of Normals

Traverse the tree and re-orient

Reorientation of Normals

Traverse the tree and re-orient

Reorientation of Normals

Traverse the tree and re-orient

Reorientation of Normals

Traverse the tree and re-orient

Reorientation of Normals

Traverse the tree and re-orient

Reorientation of Normals

Traverse the tree and re-orient

Reorientation of Normals

Traverse the tree and re-orient

Reorientation of Normals

Traverse the tree and re-orient

Reorientation of Normals

Traverse the tree and re-orient

Reorientation of Normals

Traverse the tree and re-orient

Reorientation of Normals

Traverse the tree and re-orient

Reorientation of Normals

Traverse the tree and re-orient

Reorientation of Normals

Traverse the tree and re-orient

Reorientation of Normals

Traverse the tree and re-orient

Moving Least Squares

Points + Normals. Iso-values f( x ) = 0

Moving Least Squares

Corresponding Surface

Moving Least Squares

Effect of the selection of neighborhood

Moving Least Squares

Effect of the selection of neighborhood

Moving Least Squares

Effect of the selection of neighborhood

Curve ReconstructionScattered Data

Points as input Pi = ( xi, yi )

Curve ReconstructionAlgorithm

Triangulation (as per Delaunay)

Curve ReconstructionAlgorithm

Triangulation (as per Delaunay)And associated values zi

Curve ReconstructionAlgorithm

Triangular mesh with plane Pi = ( xi, yi )And associated values zi

How to determine the isovalue curve (piecewise linear)

Curve ReconstructionAlgorithm

(A) : Binary marking peaks Pi

Curve ReconstructionAlgorithm

(A) : Binary marking peaks Pi

Partition the heights in 2 sets

Curve ReconstructionAlgorithmTraversal of triangles and construction of isovalue curve. For

each triangle [S1, S2, S3]

Curve ReconstructionAlgorithmTraversal of triangles and construction of isovalue curve. For

each triangle [S1, S2, S3]

Curve ReconstructionScattered DataTraversal of triangles and construction of isovalue curve. For

each triangle [S1, S2, S3], 8 possible markings

Curve ReconstructionScattered DataTraversal of triangles and construction of isovalue curve. For

each triangle [S1, S2, S3], 8 possible markings

Curve ReconstructionAlgorithmTraversal of triangles and construction of isovalue curve

Same sign

Curve ReconstructionAlgorithmTraversal of triangles and construction of isovalue curve

Same sign

Curve ReconstructionAlgorithmTraversal of triangles and construction of isovalue curve.

Same sign : no intersection with the plane z = v

Curve ReconstructionAlgorithmTraversal of triangles and construction of isovalue curve.

Different signs

Curve ReconstructionAlgorithmTraversal of triangles and construction of isovalue curve

Different signs

Curve ReconstructionAlgorithmTraversal of triangles and construction of isovalue curve.

Different signs: intersection with the plane z = v

Curve ReconstructionAlgorithm(B) Traversal of triangles and construction of isovalue curve.

Different signs: intersection with the plane z = v

Objective : To find the segment AB

Curve ReconstructionAlgorithmTraversal of triangles and construction of isovalue curve.

Intersection of the plane with edge PQ

Curve ReconstructionAlgorithmTraversal of triangles and construction of isovalue curve.

Intersection of the plane with edge PQ

Curve ReconstructionAlgorithmTraversal of triangles and construction of isovalue curve.

Intersection of the plane with edge PQ

Curve ReconstructionAlgorithm(B) Traversal of triangles and construction of isovalue curve.

For each triangle, calculate 0 or 1 segment

Curve ReconstructionAlgorithm(B) Traversal of triangles and construction of isovalue curve.

For each triangle, calculate 0 or 1 segment

Computed data = isovalue curve

Curve ReconstructionAlgorithm(C) : Strategy for path of triangles

Curve ReconstructionAlgorithm(C) : Strategy for path of triangles

A. In no particular order

Curve ReconstructionAlgorithm(C) : Strategy for path of triangles

A. In no particular order

Curve ReconstructionAlgorithm(C) : Strategy for path of triangles

A. In no particular order

Curve ReconstructionAlgorithm(C) : Strategy for path of triangles

A. In no particular order

Curve ReconstructionAlgorithm(C) : Strategy for path of triangles

A. In no particular order

Curve ReconstructionAlgorithm(C) : Strategy for path of triangles

A. In no particular order

Curve ReconstructionAlgorithm(C) : Strategy for path of triangles

A. In no particular order

Curve ReconstructionAlgorithm(C) : Strategy for path of triangles

A. In no particular order

Curve ReconstructionAlgorithm(C) : Strategy for path of triangles

A. In no particular order

Curve ReconstructionAlgorithm(C) : Strategy for path of triangles

A. In no particular order

Curve ReconstructionAlgorithm(C) : Strategy for path of triangles

A. In no particular order

Curve ReconstructionAlgorithm(C) : Strategy for path of triangles

A. In no particular order

Curve ReconstructionAlgorithm(C) : Strategy for path of triangles

A. In no particular order

Curve ReconstructionAlgorithm(C) : Strategy for path of triangles

A. In no particular order

Curve ReconstructionAlgorithm(C) : Strategy for path of triangles

A. In no particular order

Curve ReconstructionAlgorithm(C) : Strategy for path of triangles

A. In no particular order

Curve ReconstructionAlgorithm(C) : Strategy for path of triangles

A. In no particular order

Curve ReconstructionAlgorithm(C) : Strategy for path of triangles

A. In no particular order

Curve ReconstructionAlgorithm(C) : Strategy for path of triangles

A. In no particular order

How to obtain the isovalue curve ?

Curve ReconstructionAlgorithm(C) : Strategy for path of triangles

Curve ReconstructionAlgorithm(C) : Strategy for path of triangles

B. Follow up curve

(0) Initial triangulation

Curve ReconstructionAlgorithm(C) : Strategy for path of triangles

B. Follow up curve

(1) Marking non-intersection triangles

Curve ReconstructionAlgorithm(C) : Strategy for path of triangles

B. Follow up curve

(1) Marking non-intersection triangles

Curve ReconstructionAlgorithm(C) : Strategy for path of triangles

B. Follow up curve

(2) To : open components (external stopped)

Curve ReconstructionAlgorithm(C) : Strategy for path of triangles

B. Follow up curve

(2) b : open components (successive neighborhoods)

Curve ReconstructionAlgorithm(C) : Strategy for path of triangles

B. Follow up curve

(2) b : open components (successive neighborhoods)

Curve ReconstructionAlgorithm(C) : Strategy for path of triangles

B. Follow up curve

(2) b : open components (successive neighborhoods)

Curve ReconstructionAlgorithm(C) : Strategy for path of triangles

B. Follow up curve

(2) b : open components (successive neighborhoods)

Curve ReconstructionAlgorithm(C) : Strategy for path of triangles

B. Follow up curve

(2) b : open components (successive neighborhoods)

Curve ReconstructionAlgorithm(C) : Strategy for path of triangles

B. Follow up curve

(3) a : closed components (finding departure)

Curve ReconstructionAlgorithm(C) : Strategy for path of triangles

B. Follow up curve

(3) b : closed components (successive neighborhoods)

Curve ReconstructionAlgorithm(C) : Strategy for path of triangles

B. Follow up curve

(3) b : closed components (successive neighborhoods)

Curve ReconstructionAlgorithm(C) : Strategy for path of triangles

B. Follow up curve

(3) b : closed components (successive neighborhoods)

Curve ReconstructionAlgorithm(C) : Strategy for path of triangles

B. Follow up curve

(3) b : closed components (successive neighborhoods)

Curve ReconstructionAlgorithm(C) : Strategy for path of triangles

B. Follow up curve

(3) b : closed components (successive neighborhoods)

Curve ReconstructionAlgorithm(C) : Strategy for path of triangles

B. Follow up curve

(3) b : closed components (successive neighborhoods)

Curve ReconstructionAlgorithm(C) : Strategy for path of triangles

B. Follow up curve

(3) b : closed components (successive neighborhoods)

Curve ReconstructionAlgorithm(C) : Strategy for path of triangles

B. Follow up curve

Marching Squares

Same principle with square !

Marching Squares

Same principle with square !

Marching Squares

Same principle with square !

Marching Squares

Same principle with square !

Marching Squares

Same principle with square !

Marching Squares

Same principle with square !https://www.youtube.com/watch?v=uChG0Ziy74k

With Normals

Points + Normals

With Normals

Embedding in a regular grid

With Normals

Strategies : Closest point / average distances (MLS) ….

With Normals

Signed distance < 0

With Normals

Signed distance = 0

With Normals

Signed distance > 0

With Normals

With Normals

With Normals

With Normals

http://www.labri.fr/perso/guenneba/videos/APSS_sig07.avi

Same approach but using spheres instead of planes

Isovalue Surfaces

Marching Cubes

15 families for 256 situations

Marching Cubes

15 families for 256 situations

https://www.youtube.com/watch?v=LfttaAepYJ8https://www.youtube.com/watch?v=LC0IbOZ0jkw

Marching TetrahedronsDecomposition of a cube into 6 tetrahedrons

Marching Tetrahedrons

[CDEG]

Decomposition of a cube into 6 tetrahedrons

Marching Tetrahedrons

[CDEG], [DFGH],

Decomposition of a cube into 6 tetrahedrons

Marching Tetrahedrons

[CDEG], [DFGH], [DEFG]

Decomposition of a cube into 6 tetrahedrons

Marching Tetrahedrons

[CDEG], [DFGH], [DEFG], [BCDE]

Decomposition of a cube into 6 tetrahedrons

Marching Tetrahedrons

[CDEG], [DFGH], [DEFG], [BCDE], [BDEF],

Decomposition of a cube into 6 tetrahedrons

Marching Tetrahedrons

[CDEG], [DFGH], [DEFG], [BCDE], [BDEF], [ABCE]

Decomposition of a cube into 6 tetrahedrons

Marching Tetrahedrons

[CDEG], [DFGH], [DEFG], [BCDE], [BDEF], [ABCE] Non-minimal decomposition

Decomposition of a cube into 6 tetrahedrons

Marching Tetrahedrons

[CDEG], [DFGH], [DEFG], [BCDE], [BDEF], [ABCE] Non-minimal decomposition

But with good neighboring connection

Decomposition of a cube into 6 tetrahedrons

Marching Tetrahedrons

For a tetrahedron

Marching TetrahedronsFor a tetrahedron : 16 configurations

Marching Tetrahedrons

No intersection with the iso-value surface

Vertices with same sign

Marching Tetrahedrons

Vertex A has different sign than B, C and D

Marching Tetrahedrons

Vertex A has different sign than B, C and D

Intersection of 3 edges [AB], [AC], [AD] with the iso-value

Marching Tetrahedrons

Vertex A has different sign than B, C and D

Intersection of 3 edges [AB], [AC], [AD] with the iso-value

Triangle [IJK] obtained

Marching Tetrahedrons

Vertices A, C have different sign than B, D

Marching Tetrahedrons

Vertices A, C have different sign than B, D

Intersection of 3 edges [AB], [AD], [CB], [CD] with the iso-value

2 triangles [IJK], [JKL]

Marching Tetrahedrons

Vertices A, C have different sign than B, D

Intersection of 3 edges [AB], [AD], [CB], [CD] with the iso-value

2 triangles [IJK], [JKL] OR 2 triangles [IJL], [IKL]

Marching TetrahedronsSmooth

Bibliography

• Cours de Nicolas Szafran 2011/2012

http://www-ljk.imag.fr/membres/Nicolas.Szafran/

• Scattered Data Interpolation and Approximation for Computer Graphics (Siggraph Asia course 2010)

• Implicit surface reconstruction from point clouds (Johan Huysmans’s thesis)

• The Method of Least Squares (Steven J. Miller)

• Course of Gael Guennebad (moving least squares) http ://www.labri.fr/perso/guenneba/

top related