from aligned range maps to triangle...

Post on 17-Oct-2020

0 Views

Category:

Documents

0 Downloads

Preview:

Click to see full reader

TRANSCRIPT

From Aligned Range Maps to

Triangle Meshes

Input & Output

Input: a set of aligned range maps

Variable density

Noisy

Output: a triangulated mesh

Manifold

Good aspect ratio

Possibly watertight (may not be possible)

Mesh Zippering [Turk94]

Input: triangulated ranges maps (not just

point clouds)

Works in pairs:

Remove overlapping portions

Clip one RM against the other

Remove small triangles

Mesh Zippering

Input: triangulated ranges maps (not just

point clouds)

Works in pairs:

Remove overlapping portions

Clip one RM against the other

Remove small triangles

Mesh Zippering

Input: triangulated ranges maps (not just

point clouds)

Works in pairs:

Remove overlapping portions

Clip one RM against the other

Remove small triangles

Mesh Zippering

Input: triangulated ranges maps (not just

point clouds)

Works in pairs:

Remove overlapping portions

Clip one RM against the other

Remove small triangles

Mesh Zippering

Input: triangulated ranges maps (not just

point clouds)

Works in pairs:

Remove overlapping portions

Clip one RM against the other

Remove small triangles

Mesh Zippering

Input: triangulated ranges maps (not just

point clouds)

Works in pairs:

Remove overlapping portions

Clip one RM against the other

Remove small triangles

Mesh Zippering

Not so trivial to implement…for example..

remove overlapping regions: «a face of mesh A

overlaps if its 3 vertices project on mesh B»

Hole may appear, to be fixed later…

Mesh Zippering

Not so trivial to implement…for example..

remove overlapping regions:

criterion?

Mesh Zippering [marras10]

Not so trivial to implement…for example..

remove overlapping regions:

criterion? Preserve faces from left

Preserve faces from right

Halfway (distance from

the border)

Ball Pivoting [Bernardini99]

Input: a uniform point cloud and normals

per-vertex

Output: a triangulation of the point cloud

How? With a rolling sphere:

Ball Pivoting: Alpha Shapes [Edelsbrunner83]

Question: what is the surface of a point cloud?

Possible answer: the Convex Hull

Def: Convex hull of 𝑝0,𝑝1,…,𝑝𝑕

ܪܥ ∈ ℜ𝑛

ܪܥ = ܪ �� , ∀𝑝𝑗 ∈ ܪܥ

′ܪܥ∀ = ,′𝑖′ܪ ∀𝑝𝑗 ∈ ܪܥ ⇒ ܪܥ ⊆ ′ܪܥ

Def: Empty half-space EHS: Half

space not including points in S

ܪܥ = ℜ𝑛∖ ܪܧ𝑖

Def: Convex hull of S

Alpha Shapes

Def: empty -ball Sphere with radius not including point of S

Def: -Hull Complemento dell’unione di tutte le empty -ball

•An alpha-shape is a polytope, not necessarily convex or

connected

Generazione di Mesh di volume

𝛼𝐻 = 𝑅𝑛 ∖ 𝐸𝛼−b𝑖

Alpha Shapes Examples

Alpha Shapes: generalizations

Scale density alpha-shape

is a function of point density

Anisotropic alpha-shape

ellispsoid instead of spheres i.e. the metrics is defined with a

ellipsoid

alpha-shape scaled Scaled & anisotropic

-1

Normals on a point cloud

Question: what are the normals on a point cloud?

Answer: the gradient of the surface, which we don’t know yet

Use the assumption that the points are locally on a plane

Take the K neighbors (easy with range maps)

Compute the best fitting plane

N

P

Neighborhood used for normal computation

Accurately computed

normals in locally

planar regions

Neighborhood used for normal computation

Two possible

directions

[towards outside]

Neighborhood used for normal computation

Two possible

directions

[towards inside]

Neighborhood used for normal computation

Consistent normal

direction

for all points

Neighborhood used for normal computation

Consistent normal

direction

for all points

Choose outside

orientation

Neighborhood used for normal computation

Inaccurately computed

normals

close to boundaries

Ball Pivoting Algorithm [Input]

•Points/normals of all range images in data structure

•Connectivity of points in range images not needed anymore

•Radius ρ selected by the user.

Voxel-based data structure

x-axis

y-axis

ρ

ρ

Fast search for

points within

circle of radius

ρ

Voxel-based data structure

x-axis

y-axis

ρ

ρ

Fast search for

points within

circle of radius

ρ

Need to search only in

adjacent voxels

[9 in this picture –

27 in 3D space]

Voxel-based data structure

x-axis

y-axis

ρ

ρ

Fast search for

points within

circle of radius

ρ

Need to search only in

adjacent voxels

[9 in this picture –

27 in 3D space]

Basic Operations

A sequence of ball-pivoting operations. From left to right: A seed triangle

is found; pivoting around an edge of the current front adds a new

triangles to the mesh; after a number of pivoting operations, the active

front closes on itself; a final ball-pivoting completes the mesh.

Closely related to alpha-shapes, Edelsbrunner 94

Seed triangles

A number of seed triangles with their associated spheres shown

Pivoting in 2D

(a)Circle of radius ρ pivots from point to point, connecting them with edges.

(b) When sampling density is low, some of the edges will not be created, leaving holes.

(c) When the curvature of the manifold is larger than 1/ρ, some of the points will not be

reached by the pivoting ball, and features will be missed.

The algorithm [Edge representation]

•Edge (si, sj)

–Opposite point so, center of empty ball c

–Edge: “Active”, “Boundary”, or “Frozen”

si

sj

so

c

Pivoting example

Active edge

Point on front

Initial seed triangle:

Empty ball of radius ρ passes through the three points

Pivoting example

Active edge

Point on front Ball pivoting around active edge

Pivoting example

Active edge

Point on front Ball pivoting around active edge

Pivoting example

Active edge

Point on front Ball pivoting around active edge

Pivoting example

Active edge

Point on front Ball pivoting around active edge

Pivoting example

Active edge

Point on front

Internal point

Ball pivoting around active edge

Pivoting example

Boundary edge

Point on front

Internal point

Ball pivoting around active edge

No pivot found

Active edge

Pivoting example

Point on front

Internal point

Active edge

Ball pivoting around active edge

Boundary edge

Pivoting example

Point on front

Internal point

Active edge

Boundary edge

Ball pivoting around active edge

No pivot found

Pivoting example

Point on front

Internal point

Active edge

Boundary edge

Ball pivoting around active edge

Pivoting example

Point on front

Internal point

Active edge

Boundary edge

Ball pivoting around active edge

Frozen edge

Points in frozen region

Pivoting example

Point on front

Internal point

Active edge

Boundary edge

Ball pivoting around active edge

Frozen edge

Points in frozen region

Pivoting example

Point on front

Internal point

Active edge

Boundary edge

Ball pivoting around active edge

Frozen edge

Points in frozen region

Pivoting example

Point on front

Internal point

Active edge

Boundary edge

Ball pivoting around active edge

Frozen edge

Points in frozen region

Noisy data

(a)Points “below” surface level are not touched by the pivoting ball and remain

isolated (and are discarded by the algorithm).

(b) Due to missing data, the ball pivots around an edge until it touches a sample that

belongs to a different part of the surface. By checking that triangle and data point

normals are consistently oriented, we avoid generating a triangle in this case.

(c) Noisy samples form two layers, distant enough to allow the ball to “walk” on both

layers. A spurious small component is created.

Ball Pivoting Algorithm

Overlapping scans

3D mesh

Ball Pivoting Algorithm

3D mesh detail 3D mesh detail

Out of core implementation

•Process data in slices that fit in

memory

•No limit in size of input

•BPA’s active front provides

natural implementation

•Of major importance for large

scale scenes

Out of core implementation

Bounding box of scene First slice in memory

Mesh for

first slice

Frozen region

Out of core implementation

Second slice in memory

Mesh for

second slice

Frozen region

Out of core implementation

Third slice in memory, etc.

Mesh for

third slice

Frozen region

Out of core results

Part of the Great Hall mesh. The different colors correspond to meshes of different slices

produced by the out-of-core implementation.

Limits of direct tessellation

Sampling quality and reconstruction issues:

Volumetric methods

• Use the RM (or the point clouds) to define

a distance field from the surface

• return the isosurface for a small distance

Marching Cube:isosurfaces from volume

data [Lorensen87] :

Output: a surface with scalar value and non null gradient (the

isosurface)

Input:

- a regular 3d grid where each node is associated with a scalara

value f (i.e. a scalar field)

- a scalar value

The value at p is obtained by trilinear interpolation of the

values of teh vertices of the grid cell contained in

10 5

7 3

𝛼= 7.5 𝑓 = 7.5

𝑝00 𝑝10

𝑝11 𝑝01

𝑓 𝑥, 𝑦 = 𝑓 ⋅ (1 − 𝑥)1−𝑖𝑥𝑖(1 − 𝑦)1−𝑗𝑦𝑗

𝑖,𝑗=1

𝑖,𝑗=0

𝑦

𝑥 0,0

1

1

Marching Cube: configurations

• All configurations: 2^8=256, but only 14 considering rotations,

mirroring and complement

Marching Cube: LookUp Table

0 1

2 3

4 5

6 7

7 6 5 4 3 2 1 0

1 0 0 0 0 0 0 0

0 : nil

1 : {e0,e4,e8}

2 : ….

3 : ….

….

255: nil

LookUpTable

For each combination of field value respect to the threshold, store

the corresponding triangolation.

Marching Cubes: Implementation

•“Marching”. The algorithm proceeds cell by cell, row by row, slice

by slice. Each cell produces a triangulation

•Except than for the border cells, a new cell only requires the

evalutation of three edges

•Store “border” vertices to avoid duplication

– Topology problems: result made by a lot of tiny meshes

– Care must be taken in unifying vertices: numerical problems cause

degenerate configurations

Marching Cubes: pros/issues

•Pros:

–Quite easy to implement

–Fast and non memory consuming

–Very robust

•..then why from 87 zillions papers where published ?

Issues:

• Consistency. Guarantee a C0 and manifold result: ambiguous

cases

• Correctness: return a good approximation of the “real” surface

• Mesh complexity: the number of triangles does not depent on

the shape of the isosurface

• Mesh quality: arbitrarily ugly triangles

Marching Cubes: ambiguous cases

?

Marching Cubes: ambiguous cases

?

𝛼

𝛼

Saddle points

𝑓(0, 𝑥, 𝑦)= 𝑐ݖݕ + 𝑑𝑦 + 𝑔𝑧 + 𝑕

𝜕𝑓(0, 𝑥′,𝑦′)

𝜕𝑦= 𝑐𝑧′ + 𝑑 = 0 ⇒ z′ = −

𝑑

𝑐

𝜕𝑓(0, 𝑥′,𝑦′)

𝜕𝑥= 𝑐𝑦′ + 𝑔 = 0 ⇒ y′ = −

𝑔

𝑐

*

𝑓(0, 𝑥′,𝑦′)

Field value on a cell’s face

ELUT: Exhaustive LUT [Cignoni00]

…..

Face saddle points body saddle point

ELUT:

For each ambiguous configuration determines the coherent

internal triangulation looking at the saddle points

Marching Tetrahedra

•Tetrahedral cells (instead of cubical)

•Only 3 configurations (from the 2^4 permutation of grid values)

•No ambiguities but it may be “less” correct

Marching Tetrahedra

•Original approach []: cubic cells are partitioned in 5 (o 6)

tetrahedra.

–Subdivision determines topology

•Body centered cubic lattice: one more sample in the middle of the

cubic cell

–Unique subdivision

–Equal tetrahedra

–Better surface (better triangles)

Adaptive triangulation []

• Refine for better approximation (re-evaluate scalar field)

Extended MC [Kobbelt01]

D2Y > 0

X

Y

D1X < 0 D3X > 0

D1Y < 0

Surface

Exact intersection

point

MC

normal

tangent element

normal

tangent element

Reconstructed

surface

Extended MC

Marching Cubes Extended Marching Cubes

Dual Marching Cubes [Schaefer04]

•one vertex for each patch generated by MC

•One quad for each intersected edge (the 4 vertices associated to

the patches of the cells sharing the edge)

•Tends to improve triangles quality

Vertex of the dual MC Vertex of the MC

From point cloud to a scalar field…

Problem: given a set of points 𝑥0, … , 𝑥𝑛 , define

so that S interpolates/approximates the point cloud

𝑓 𝑥 = 𝜑 𝑥0, … , 𝑥𝑛 S = x f x = 𝛼+

Metaballs [Blinnn92,Wyvill86]

• 𝑓 is the sum of function that have maximum in the points and

decay with the distance

𝑓 𝑥 = 1

𝑥 − 𝑥𝑖2

𝑖

𝑓 𝑥 = 2𝑟3

𝑅3− 3𝑟2

𝑅2+ 1 , 𝑟 =𝑖 𝑥 − 𝑥𝑖 , R= support radius

Radial Basis Functions (RBF)

Solutions that follow the general scheme:

weights: 𝜔𝑖 ∈ ℝ RBF: 𝜑:ℝ → ℝ

p a polynome

𝑓 𝑥 = p x + 𝜔𝑖𝜑( 𝑥 − 𝑥𝑖 )𝑖

𝑓 𝑥𝑖 = 𝑓𝑖

Radial Basis Functions (RBF)[Carr01]

𝑓 𝑥 = p x + 𝜔𝑖𝜑( 𝑥 − 𝑥𝑖 )𝑖

, 𝜔𝑖 ∈ ℝ

𝜑:ℝ → ℝ

p a polynome

𝐴 PP𝑇 0

𝜔𝑐=𝐹0

𝐴𝑖𝑗 = 𝜑 𝑥𝑗 − 𝑥𝑖

p: basis for all polynomials of degree k 𝑃𝑖𝑗 = 𝑝𝑗(𝑥𝑖)

𝑝 = *1, 𝑥, 𝑦, 𝑧} d=1, m=3

𝑝 = *1, 𝑥, 𝑦, 𝑥2, 𝑥𝑦, 𝑦2} d=2, m=2

𝑝 = *1, 𝑥, 𝑥2, 𝑥3} d=1, m=3

Examples of polynomial basis:

Example

𝜑(𝑥1, 𝑥1)𝜑(𝑥2, 𝑥1)𝜑(𝑥3, 𝑥1)𝑝1(𝑥1)𝑝2(𝑥1)

𝜑(𝑥1, 𝑥2) 𝜑(𝑥2, 𝑥2) 𝜑(𝑥3, 𝑥2)𝑝1(𝑥2)𝑝2(𝑥2)

𝜑(𝑥1, 𝑥3)𝜑(𝑥2, 𝑥3) 𝜑(𝑥3, 𝑥3)𝑝1(𝑥3)𝑝2(𝑥3)

𝑝1(𝑥1) 𝑝1(𝑥2)𝑝1(𝑥3)00

𝑝2(𝑥1) 𝑝2(𝑥2) 𝑝2(𝑥3)00

𝜔1𝜔2𝜔3𝑐1𝑐2

=

𝑓1𝑓2𝑓300

𝑃 = *1, 𝑥+

𝜑 𝑑 = 𝑑

Example

0 1 4 1 −21 0 3 1 −14 3 0 1 21 1 1 0 0−2 −1 2 0 0

𝜔1𝜔2𝜔3𝑐1𝑐2

=

−2−1100

𝜔1𝜔2𝜔3𝑐1𝑐2

=

0.166−0.1660−0.50.66

𝑓 𝑥 = −0.5 + 0.66 𝑥 + 0.166 |𝑥 − −2 | − 0.166 |𝑥 − −1 | + 0 𝑥 − 2 = = −0.334 + 0.66 𝑥 + 0.166 𝑥 + 2 − 0.166 (|𝑥 + 1|)

Example

𝑓 𝑥 = −0.334 + 0.66 𝑥 + 0.166 𝑥 + 2 − 0.166 (|𝑥 + 1|)

Radial Basis Functions (RBF)

• Several possible choices for 𝜑 and p:

– 𝜑 𝑑 = 𝑑, 𝑙𝑖𝑛𝑒𝑎𝑟 𝑝𝑜𝑙𝑦𝑛𝑜𝑚𝑖𝑎𝑙

– 𝜑 𝑑 = 𝑑2, 𝑙𝑖𝑛𝑒𝑎𝑟 𝑝𝑜𝑙𝑦𝑛𝑜𝑚𝑖𝑎𝑙

– 𝜑 𝑑 = 𝑑3, 𝑙𝑖𝑛𝑒𝑎𝑟/𝑞𝑢𝑎𝑑𝑟𝑎𝑡𝑖𝑐 𝑝𝑜𝑙𝑦𝑛𝑜𝑚𝑖𝑎𝑙

– 𝜑 𝑑 = 𝑑2log (𝑑), 𝑙𝑖𝑛𝑒𝑎𝑟/𝑞𝑢𝑎𝑑𝑟𝑎𝑡𝑖𝑐 𝑝𝑜𝑙𝑦𝑛𝑜𝑚𝑖𝑎𝑙

– ….

• Issue 1: if functions have unbounded support, i.e. nonzero

everywhere, the matrix will always be dense

– Expensive to solve when n increase…

• Issue 2: the whole surface is influenced by each single input

point

Bounded RBD [Morse01]

• The value of f is determined only locally (withing the radius 1)

– Use 𝜑 𝑑/𝑅 to adapt to the point cloud resolution

• The resulting matrix is sparse

• The fitting is local

𝜑 𝑑 = 1 − 𝑑 𝑝𝑃 𝑑 , 𝑑 < 1 0, 𝑑 ≥ 1

P(d) = polynome with degree 6

Bounded RBD

• The value of f is determined only locally (withing the radius 1)

– Use 𝜑 𝑑/𝑅 to adapt to the point cloud resolution

• The resulting matrix is sparse

• The fitting is local

𝜑 𝑑 = 𝑓 𝑥 = 1 − 𝑑 𝑝𝑃 𝑑 , 𝑑 < 1 0, 𝑑 ≥ 1

P(d) = polynome with degree 6

Bounded RBF

• The value of f is determined only locally (withing the radius 1)

– Use 𝜑 𝑑/𝑅 to adapt to the point cloud resolution

• The resulting matrix is sparse

• The fitting is local

More issues:

• Still hard to represent sharp features, anisotropic basis functions

may be used [Dinh01]

𝜑 𝑑 = 1 − 𝑑 𝑝𝑃 𝑑 , 𝑑 < 1 0, 𝑑 ≥ 1

P(d) = polynome with degree 6

Partition of Unit [Ohtake03]

• f is defined globally as the weighted sum of local functions that

describe (implicitly) the surface

• Each i corresponds to a region of ℝ3 where the function is

described by 𝑓𝑖

• The sum of the weights is 1 everywhere:

– Which is obtained by normalization

𝑓 𝑥 = 𝜔𝑖 𝑥 𝑄𝑖 (𝑥)𝑖

𝜔𝑖 𝑥 = 1𝑖

𝜔𝑖 𝑥 =𝑊𝑖(𝑥)

𝑊𝑖𝑖 (𝑥)

Multilevel PoU • Subdivide the domain with an octree

• Fit the points within each cell with a function 𝑄𝑖(𝑥), either:

– A quadric (for noisy and unbounded regions)

– A bivariate (u,v) quadratic polynomial in a local coordinate

system (for smooth patch)

– A piecewise quadratic surface (for sharp features)

• Blending PU:

𝜔𝑖 𝑥 = 𝑏3|𝑥 − 𝑐𝑖|

2𝑅𝑖

𝑅𝑖 = 0.75 ∗ 𝑑𝑖𝑎𝑔

Results

Distance field from range maps [Levoy] MPU implicits

Moving Least Square Reconstruction

min𝑓∈ 𝑑𝑚 𝑓 𝑥𝑖 − 𝑓𝑖𝑖

𝑑𝑚 :polynomes degree m in d-dimension

min𝑓𝑥 ∈ 𝑑𝑚 𝜃 𝑥𝑖 − 𝑥 𝑓 𝑥𝑖 − 𝑓𝑖𝑖

𝑥 : fixed point

min𝑓𝑥∈ 𝑑𝑚 𝜃( 𝑥𝑖 − 𝑥 ) 𝑓𝑥 𝑥𝑖 − 𝑓𝑖𝑖

LS Least square

WLS Weighted Least square

MLS Moving Least square

Moving Least Square Reconstruction [Alexa01]

• Iterative approach: project the points near the surface onto the

surface (??)

min𝑛,𝐷 ( 𝑛, 𝑝𝑖 − 𝐷)2𝑛

𝑖=1 𝜃( 𝑝𝑖 − 𝑞 )

min𝑔 (𝑔 𝑥𝑖 , 𝑦𝑖 − 𝑓)2𝑛

𝑖=1 𝜃( 𝑝𝑖 − 𝑞 )

Move r to 𝑞 + 𝑔 0,0 𝑛

1.

2.

3.

Moving Least Square Reconstruction [Alexa01]

• Iterative approach: project the points near the surface onto the

surface (??)

min𝑛,𝐷 ( 𝑛, 𝑝𝑖 − 𝐷)2𝑛

𝑖=1 𝜃( 𝑝𝑖 − 𝑞 )

min𝑔 (𝑔 𝑥𝑖 , 𝑦𝑖 − 𝑓)2𝑛

𝑖=1 𝜃( 𝑝𝑖 − 𝑞 )

Move r to 𝑞 + 𝑔 0,0 𝑛

1.

2.

3.

Squared distance between 𝑝𝑖 and the plane 𝑛, 𝐷

No linear problem

Moving Least Square Reconstruction [Alexa01]

• Iterative approach: project the points near the surface onto the

surface (??)

min𝑛,𝐷 ( 𝑛, 𝑝𝑖 − 𝐷)2𝑛

𝑖=1 𝜃( 𝑝𝑖 − 𝑞 )

min𝑔 (𝑔 𝑥𝑖 , 𝑦𝑖 − 𝑓𝑖)2𝑛

𝑖=1 𝜃( 𝑝𝑖 − 𝑞 )

Move r to 𝑞 + 𝑔 0,0 𝑛

1.

2.

3.

𝑓𝑖 = 𝑛 ∙ (𝑝𝑖 − 𝑞)

𝑔:ℝ2⟹ ℝ approximates point set in the local reference system centered in q

Known from 1. No linear problem

Moving Least Square Reconstruction

𝜃 𝑑 = 𝑒−𝑑2

ℎ2 h is related to the spacing between samples

Smaller h Larger h

Poisson Reconstruction [kazhdan06]

reconstruct the surface of the model by solving

for the indicator function of the shape.

…the indicator function is unknown !

Mp

MppM

if0

if1

M

Indicator function

0

1

0

0 0

0

1

1

Challenge

How to construct the indicator function?

M

Indicator function Oriented points

Gradient Relationship

There is a relationship between the normal field

and gradient of indicator function

M

Indicator gradient

0 0

0

0

0

0

Oriented points

Integration as a Poisson Problem

Represent the points by a vector field

Find the function whose gradient best

approximates :

Applying the divergence operator it

becomes a Poisson problem:

V

V

min

VV

V

Implementation

Given the Points: Set octree

Compute vector field

Compute indicator function

Extract iso-surface

Vector field

Use a basis F:R^3->R (another RBF)

One base for each node containing some

original point

Express the vector field as the interpolation

of neighbor cells

Ss sNo

oso NsqFqV)(

, .)()(

For each octree level

For each neighbor

Compute indicator function

𝜒 is also expressed on the same basis F

||, o

o oo xFx

2

||min vLx

oRx

'2'2'2', oo

oo

oo

oo Fz

FF

y

FF

x

FL

Divergence of V at node o

So that Lx is the laplacian of 𝜒

References

[turk94] Turk, G. and Levoy, M. (1994). Zippered polygon meshes from range images.

ACM Computer Graphics, 28:311-318.

[Marras10] Controlled and adaptive mesh zippering S.Marras, F. Ganovelli, P. Cignoni,

R. Scateni and R. Scopigno, GRAPP 2010

[Bernardni99] The Ball-Pivoting Algorithm for Surface Reconstruction, Fausto Bernardini,

Joshua Mittleman, Holly Rushmeier, Cláudio Silva, Gabriel Taubin IEEE

Transactions on Visualization and Computer Graphics archive Volume 5 Issue 4, October

1999 Page 349-359

[Edelsbrunner83] Edelsbrunner, Herbert (1995), "Smooth surfaces for multi-scale shape

representation", Foundations of software technology and theoretical computer science

(Bangalore, 1995), Lecture Notes in Comput. Sci., 1026, Berlin: Springer, pp. 391-412

[Lorensen87] William E. Lorensen, Harvey E. Cline: Marching Cubes: A high resolution

3D surface construction algorithm. In: Computer Graphics, Vol. 21, Nr. 4, July 1987

[Cignoni00]Reconstruction of topologically correct and adaptive trilinear isosurfacesP

Cignoni, F Ganovelli, C Montani, R ScopignoComputers and graphics 24 (3), 399-418

[Ning93] Paul Ning and Jules Bloomenthal. An evaluation of implicit surfacetilers. IEEE

Computer Graphics and Applications, 13(6):33-41, 1993.

[Kobbelt01] Feature sensitive surface extraction from volume dataL.P. Kobbelt, M.

Botsch, U. Schwanecke, Hans-Peter Seidel SIGGRAPH '01 Proceedings of the 28th

annual conference on Computer graphics and interactive techniquesPages 57-66

[Schaefer04] Dual Marching Cubes: Primal Contouring of Dual Grids Scott Schaefer , Joe

Warren PG '04: PROCEEDINGS OF THE COMPUTER GRAPHICS AND

APPLICATIONS

[Blinn92] Blinn, J. F. "A Generalization of Algebraic Surface Drawing". ACM Transactions

on Graphics 1 (3): 235-256

[Wyivill86] Data structure for soft objects, Geoff Wyvill, Craig McPheeters, Brian

WyvillThe Visual Computer, Vol. 2, No. 4. (1 August 1986), pp. 227-234

[Carr01] J. C. Carr, R. K. Beatson, J. B. Cherrie, T. J. Mitchell, W. R. Fright, B. C.

McCallum, and T. R.Evans. Reconstruction and representation of 3D objects with radial

basis functions. In Proceedingsof ACM SIGGRAPH 2001, pages 67-76, August 2001.

[Morse01] B. S. Morse, T. S. Yoo, D. T. Chen, P. Rheingans, and K. R. Subramanian.

Interpolating implicit surfaces from scattered surface data usingcompactly supported

radial basis functions. In SMI'01: Proceedings of the International Conferenceon Shape

Modeling & Applications, pages 89-98. IEEE Computer Society, 2001

[Dinh01] H. Q. Dinh, G. Turk, and G. Slabaugh. Re-constructing surfaces using

anisotropic basis func-tions. In International Conference on ComputerVision (ICCV) 2001,

volume 2, pages 606-613, 2001.

[Ohtake03] Y. Ohtake, A. Belyaev, M. Alexa, G. Turk, and H.-P. Seidel. Multi-level

partition of unity implicits.ACM Transactions on Graphics, 22(3):463-470,July 2003.

Proceedings of SIGGRAPH 2003.

[Alexa01] M. Alexa, J. Behr, D. Cohen-Or, S. Fleishman, and C. T. Silva. Point set

surfaces. IEEE Visualization2001, pages 21-28, October 2001.

[Kazhdan06]Poisson surface reconstruction, Michael Kazhdan, Matthew Bolitho, Hugues

Hoppe.Symposium on Geometry Processing 2006, 61-70.

Credits: the slides for the Ball Pivoting Algorithm are taken as they were from

the original presentation. Part of the slides on Poisson reconstruction

were also taken from the original presentation.

All images are taken from the papers.

top related