2D/3D Shape Manipulation , 3D Printing

of 55 /55
2D/3D Shape Manipulation, 3D Printing Surface Reconstruction March 6, 2013 Slides from Olga Sorkine

Embed Size (px)

description

2D/3D Shape Manipulation , 3D Printing. Surface Reconstruction. Slides from Olga Sorkine. Geometry Acquisition Pipeline. Scanning: results in range images. Registration: bring all range images to one coordinate system. Stitching / reconstruction: Integration of scans into a single mesh. - PowerPoint PPT Presentation

Transcript of 2D/3D Shape Manipulation , 3D Printing

Surface Reconstruction

2D/3D Shape Manipulation,3D PrintingSurface ReconstructionMarch 6, 2013Slides from Olga SorkineScanning:results in range imagesRegistration:bring all range images to one coordinate systemStitching/reconstruction:Integration of scans into a single meshPostprocess: Topological and geometric filtering Remeshing CompressionGeometry Acquisition Pipeline

March 6, 2013Olga Sorkine-Hornung2#

4G sample points 8M triangles1G sample points 8M trianglesMarch 6, 2013Olga Sorkine-Hornung3Digital Michelangelo Project#RegistrationIterative Closest Points (ICP):

Efficient Variants of the ICP AlgorithmMarch 6, 2013Connelly Barnes4#Input to Reconstruction ProcessInput option 1: just a set of 3D points, irregularly spacedNeed to estimate normals next class

Input option 2: normals come from the range scans

set of raw scans

reconstructed model

March 6, 2013Olga Sorkine-Hornung5#How to Connect the Dots?

Explicit reconstruction: stitch the range scans together

March 6, 2013Olga Sorkine-Hornung6#How to Connect the Dots?Explicit reconstruction: stitch the range scans together

Connect sample points by trianglesExact interpolation of sample pointsBad for noisy or misaligned dataCan lead to holes or non-manifold situations

March 6, 2013Olga Sorkine-Hornung7#How to Connect the Dots?Implicit reconstruction: estimate a signed distance function (SDF); extract 0-level set mesh using Marching CubesMarch 6, 2013Olga Sorkine-Hornung8#How to Connect the Dots?Implicit reconstruction: estimate a signed distance function (SDF); extract 0-level set mesh using Marching CubesMarch 6, 2013Olga Sorkine-Hornung9#How to Connect the Dots?Implicit reconstruction: estimate a signed distance function (SDF); extract 0-level set mesh using Marching CubesApproximation of input pointsWatertight manifold results by constructionMarch 6, 2013Olga Sorkine-Hornung10#How to Connect the Dots?Implicit reconstruction: estimate a signed distance function (SDF); extract 0-level set mesh using Marching CubesApproximation of input pointsWatertight manifold results by construction

< 0> 00March 6, 2013Olga Sorkine-Hornung11#Implicit vs. Explicit

InputImplicitExplicitMarch 6, 2013Olga Sorkine-Hornung12#SDF from Points and NormalsCompute signed distance to the tangent plane of the closest point

Normals help to distinguish between inside and outside-+March 6, 2013Olga Sorkine-Hornung13#SDF from Points and NormalsCompute signed distance to the tangent plane of the closest point

Problem??

March 6, 2013Olga Sorkine-Hornung14#SDF from Points and NormalsCompute signed distance to the tangent plane of the closest point

The function will be discontinuous

March 6, 2013Olga Sorkine-Hornung15#Smooth SDFInstead find a smooth formulation for F.Scattered data interpolation: F is smoothAvoid trivial

0000March 6, 2013Olga Sorkine-Hornung16#Smooth SDFScattered data interpolation: F is smoothAvoid trivial

Add off-surface constraints

0000

March 6, 2013Olga Sorkine-Hornung17#Radial Basis Function InterpolationRBF: Weighted sum of shifted, smooth kernelsScalar weightsUnknownsSmooth kernels (basis functions)centered at constrained points.For example:

March 6, 2013Olga Sorkine-Hornung18

#Radial Basis Function InterpolationInterpolate the constraints:0000

March 6, 2013Olga Sorkine-Hornung19

#Radial Basis Function InterpolationInterpolate the constraints:

Symmetric linear system to get the weights:March 6, 2013Olga Sorkine-Hornung20

#RBF KernelsTriharmonic:Globally supportedLeads to dense symmetric linear systemC2 smoothnessWorks well for highly irregular sampling

March 6, 2013Olga Sorkine-Hornung21#RBF KernelsPolyharmonic spline Multiquadratic

Gaussian

B-Spline (compact support)

March 6, 2013Olga Sorkine-Hornung22#

RBF Reconstruction ExamplesMarch 6, 2013Olga Sorkine-Hornung23#Off-Surface Points

Insufficient number/badly placed off-surface pointsProperly chosen off-surface pointsMarch 6, 2013Olga Sorkine-Hornung24#

Distanceto planeCompact RBFGlobal RBFTriharmonicComparison of the various SDFs so farMarch 6, 2013Olga Sorkine-Hornung25#RBF DiscussionGlobal definition!

Global optimization of the weights, even if the basis functions are local0000

March 6, 2013Olga Sorkine-Hornung26

#Extracting the SurfaceWish to compute a manifold mesh of the level setImage from: www.farfieldtechnology.com

F(x) > 0 outsideF(x) = 0 surfaceF(x) < 0 insideMarch 6, 2013Olga Sorkine-Hornung27#Sample the SDFMarch 6, 2013Olga Sorkine-Hornung28# Sample the SDFMarch 6, 2013Olga Sorkine-Hornung29# TessellationWant to approximate an implicit surface with a meshCant explicitly compute all the rootsSampling the level set is hard (root finding)Solution: find approximate roots by trapping the implicit surface in a grid (lattice)+---

March 6, 2013Olga Sorkine-Hornung30#Marching Squares16 different configurations in 2D4 equivalence classes (up to rotational and reflection symmetry + complement)March 6, 2013Olga Sorkine-Hornung31#Tessellation in 2D4 equivalence classes (up to rotational and reflection symmetry + complement)?March 6, 2013Olga Sorkine-Hornung32#Tessellation in 2DCase 4 is ambiguious:

Always pick consistently to avoid problems with the resulting meshMarch 6, 2013Olga Sorkine-Hornung33#3D: Marching CubesLayer k+1Layer k

March 6, 2013Olga Sorkine-Hornung34#Layer k+1Layer kMarching Cubes (Lorensen and Cline 1987) Load 4 layers of the grid into memoryCreate a cube whose vertices lie on the two middle layersClassify the vertices of the cube according to theimplicit function (inside, outside or on the surface)Marching CubesMarch 6, 2013Olga Sorkine-Hornung35#Compute case index. We have 28= 256 cases (0/1 for each of the eight vertices) can store as 8 bit (1 byte) index.e1e4e9e10e5e6v1v600000011index == 33e1e4e9e10e5e6v2v6e2e3e7e8e11e12v3v4v1v5v7v8v1index =v2v3v4v5v6v7v8Marching CubesMarch 6, 2013Olga Sorkine-Hornung36#Marching CubesUnique cases (by rotation, reflection and complement)

March 6, 2013Olga Sorkine-Hornung37#Tessellation3D Marching CubesUsing the case index, retrieve the connectivity in the look-up tableExample: the entry for index 33 in the look-up table indicates that the cut edges are e1; e4; e5; e6; e9 and e10 ; the output triangles are (e1; e9; e4) and (e5; e10; e6).

e1e4e9e10e5e6v1v600000011index == 33March 6, 2013Olga Sorkine-Hornung38#Marching CubesCompute the position of the cut vertices by linear interpolation:

Move to the next cube

March 6, 2013#Marching Cubes Problems Have to make consistent choices for neighboring cubes otherwise get holes33

March 6, 2013Olga Sorkine-Hornung40#Marching Cubes Problems Resolving ambiguities

AmbiguityNo AmbiguityMarch 6, 2013Olga Sorkine-Hornung41#Resolving AmbiguitiesMarching Cubes 33March 6, 2013Connelly Barnes42

#Resolving AmbiguitiesMarch 6, 2013Connelly Barnes43

#Resolving AmbiguitiesMarch 6, 2013Connelly Barnes44

#Marching Cubes 33March 6, 2013Connelly Barnes45

#Marching Cubes 33March 6, 2013Connelly Barnes46

#LibrariesShort, portable code:Paul Bourke -- Marching Cubes / Marching Tetrahedrons

Part of larger libraries/programs:OpenMeshMeshLabMarch 6, 2013Connelly Barnes47#Images from: Dual Marching Cubes: Primal Contouring of Dual Grids by Schaeffer et al.

Marching Cubes ProblemsGrid not adaptiveMany polygons required to represent small features

March 6, 2013Olga Sorkine-Hornung48#

Marching Cubes ProblemsMarch 6, 2013Olga Sorkine-Hornung49#Marching Cubes Problems Problems with short triangle edgesWhen the surface intersects the cube close to a corner, the resulting tiny triangle doesnt contribute much area to the meshWhen the intersection is close to an edge of the cube, we get skinny triangles (bad aspect ratio)Triangles with short edges waste resources but dont contribute to the surface mesh representationMarch 6, 2013Olga Sorkine-Hornung50#Grid SnappingSolution: threshold the distances between the created vertices and the cube cornersWhen the distance is smaller than dsnap we snap the vertex to the cube cornerIf more than one vertex of a triangle is snapped to the same point, we discard that triangle altogether

March 6, 2013Olga Sorkine-Hornung51#Grid SnappingWith Grid-Snapping one can obtain significant reduction of space consumptionParameter00,10,20,30,40,460,495Vertices14461398125411821074830830Reduction03,313,318,325,742,642,6March 6, 2013Olga Sorkine-Hornung52#Sharp Corners and Features(Kobbelt et al. 2001, a.k.a "Extended Marching Cubes"):Evaluate the normals (use gradient of F)When they significantly differ, create additional vertexMarch 6, 2013Olga Sorkine-Hornung53#Sharp Corners and FeaturesMarch 6, 2013Olga Sorkine-Hornung54

#Thank YouMarch 6, 2013