reconstruction and geometric...
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/