Computing and Rendering Point Set Surfaces › ~misha › Fall05 › bolitho.10.25.05.pdf · The...

32
Background Moving Least Squares Computing and Rendering Point Set Surfaces Marc Alexa, et.al. IEEE TVCG 9(1), Jan 2003 Presented by Matthew Bolitho 24 October 2005 Presented by Matthew Bolitho Computing and Rendering Point Set Surfaces

Transcript of Computing and Rendering Point Set Surfaces › ~misha › Fall05 › bolitho.10.25.05.pdf · The...

Page 1: Computing and Rendering Point Set Surfaces › ~misha › Fall05 › bolitho.10.25.05.pdf · The surface is formed from all points s.t. π(p) = p. ... Presented by Matthew Bolitho

BackgroundMoving Least Squares

Computing and Rendering Point Set SurfacesMarc Alexa, et.al.

IEEE TVCG 9(1), Jan 2003

Presented by Matthew Bolitho

24 October 2005

Presented by Matthew Bolitho Computing and Rendering Point Set Surfaces

Page 2: Computing and Rendering Point Set Surfaces › ~misha › Fall05 › bolitho.10.25.05.pdf · The surface is formed from all points s.t. π(p) = p. ... Presented by Matthew Bolitho

BackgroundMoving Least Squares

Manifold Surfaces

Definition

“A manifold is a topological space that is locally Euclidean” –Mathworld

Around every point there is a local neighbourhood that istopologically the same as an open unit ball.

We can create local parameterised neighbourhoods that coverthe entire surface.

Presented by Matthew Bolitho Computing and Rendering Point Set Surfaces

Page 3: Computing and Rendering Point Set Surfaces › ~misha › Fall05 › bolitho.10.25.05.pdf · The surface is formed from all points s.t. π(p) = p. ... Presented by Matthew Bolitho

BackgroundMoving Least Squares

Manifold Surfaces

Definition

“A manifold is a topological space that is locally Euclidean” –Mathworld

Around every point there is a local neighbourhood that istopologically the same as an open unit ball.

We can create local parameterised neighbourhoods that coverthe entire surface.

Presented by Matthew Bolitho Computing and Rendering Point Set Surfaces

Page 4: Computing and Rendering Point Set Surfaces › ~misha › Fall05 › bolitho.10.25.05.pdf · The surface is formed from all points s.t. π(p) = p. ... Presented by Matthew Bolitho

BackgroundMoving Least Squares

Manifold Surfaces

Definition

“A manifold is a topological space that is locally Euclidean” –Mathworld

Around every point there is a local neighbourhood that istopologically the same as an open unit ball.

We can create local parameterised neighbourhoods that coverthe entire surface.

Presented by Matthew Bolitho Computing and Rendering Point Set Surfaces

Page 5: Computing and Rendering Point Set Surfaces › ~misha › Fall05 › bolitho.10.25.05.pdf · The surface is formed from all points s.t. π(p) = p. ... Presented by Matthew Bolitho

BackgroundMoving Least Squares

Approach

A point set defines an implicit surface.

Define a map π that projects a point near the surface ontothe surface.

The surface is formed from all points s.t. π(p) = p.

The map π is created from Moving Least Squares.

Presented by Matthew Bolitho Computing and Rendering Point Set Surfaces

Page 6: Computing and Rendering Point Set Surfaces › ~misha › Fall05 › bolitho.10.25.05.pdf · The surface is formed from all points s.t. π(p) = p. ... Presented by Matthew Bolitho

BackgroundMoving Least Squares

Approach

A point set defines an implicit surface.

Define a map π that projects a point near the surface ontothe surface.

The surface is formed from all points s.t. π(p) = p.

The map π is created from Moving Least Squares.

Presented by Matthew Bolitho Computing and Rendering Point Set Surfaces

Page 7: Computing and Rendering Point Set Surfaces › ~misha › Fall05 › bolitho.10.25.05.pdf · The surface is formed from all points s.t. π(p) = p. ... Presented by Matthew Bolitho

BackgroundMoving Least Squares

Approach

A point set defines an implicit surface.

Define a map π that projects a point near the surface ontothe surface.

The surface is formed from all points s.t. π(p) = p.

The map π is created from Moving Least Squares.

Presented by Matthew Bolitho Computing and Rendering Point Set Surfaces

Page 8: Computing and Rendering Point Set Surfaces › ~misha › Fall05 › bolitho.10.25.05.pdf · The surface is formed from all points s.t. π(p) = p. ... Presented by Matthew Bolitho

BackgroundMoving Least Squares

Approach

A point set defines an implicit surface.

Define a map π that projects a point near the surface ontothe surface.

The surface is formed from all points s.t. π(p) = p.

The map π is created from Moving Least Squares.

Presented by Matthew Bolitho Computing and Rendering Point Set Surfaces

Page 9: Computing and Rendering Point Set Surfaces › ~misha › Fall05 › bolitho.10.25.05.pdf · The surface is formed from all points s.t. π(p) = p. ... Presented by Matthew Bolitho

BackgroundMoving Least Squares

Moving Least Squares

Figure from Alexa03

A reference domain H is formed from the neighbourhoodaround r .

Presented by Matthew Bolitho Computing and Rendering Point Set Surfaces

Page 10: Computing and Rendering Point Set Surfaces › ~misha › Fall05 › bolitho.10.25.05.pdf · The surface is formed from all points s.t. π(p) = p. ... Presented by Matthew Bolitho

BackgroundMoving Least Squares

Moving Least Squares

Figure from Alexa03

Point q is the projection of r onto the plane H.

Presented by Matthew Bolitho Computing and Rendering Point Set Surfaces

Page 11: Computing and Rendering Point Set Surfaces › ~misha › Fall05 › bolitho.10.25.05.pdf · The surface is formed from all points s.t. π(p) = p. ... Presented by Matthew Bolitho

BackgroundMoving Least Squares

Moving Least Squares

Figure from Alexa03

A polynomial g approximates the height function f .

Presented by Matthew Bolitho Computing and Rendering Point Set Surfaces

Page 12: Computing and Rendering Point Set Surfaces › ~misha › Fall05 › bolitho.10.25.05.pdf · The surface is formed from all points s.t. π(p) = p. ... Presented by Matthew Bolitho

BackgroundMoving Least Squares

Moving Least Squares

Figure from Alexa03

fi = dist(pi ,H) weighted by dist(pi , q)

Presented by Matthew Bolitho Computing and Rendering Point Set Surfaces

Page 13: Computing and Rendering Point Set Surfaces › ~misha › Fall05 › bolitho.10.25.05.pdf · The surface is formed from all points s.t. π(p) = p. ... Presented by Matthew Bolitho

BackgroundMoving Least Squares

Moving Least Squares

Figure from Alexa03

The map π(p) projects p onto g

Presented by Matthew Bolitho Computing and Rendering Point Set Surfaces

Page 14: Computing and Rendering Point Set Surfaces › ~misha › Fall05 › bolitho.10.25.05.pdf · The surface is formed from all points s.t. π(p) = p. ... Presented by Matthew Bolitho

BackgroundMoving Least Squares

Shape Representation

Claim

Points can be used as a complete representation of shape (i.e. nopolygonal mesh representation)

Provided the sampling is sufficently dense, all featurescaptured

Given a collection of points, one can define a manifold

In detailed models, triangles often project to ≤ 1 pixel –render as points anyway

Question

Is this resonable?

Presented by Matthew Bolitho Computing and Rendering Point Set Surfaces

Page 15: Computing and Rendering Point Set Surfaces › ~misha › Fall05 › bolitho.10.25.05.pdf · The surface is formed from all points s.t. π(p) = p. ... Presented by Matthew Bolitho

BackgroundMoving Least Squares

Shape Representation

Claim

Points can be used as a complete representation of shape (i.e. nopolygonal mesh representation)

Provided the sampling is sufficently dense, all featurescaptured

Given a collection of points, one can define a manifold

In detailed models, triangles often project to ≤ 1 pixel –render as points anyway

Question

Is this resonable?

Presented by Matthew Bolitho Computing and Rendering Point Set Surfaces

Page 16: Computing and Rendering Point Set Surfaces › ~misha › Fall05 › bolitho.10.25.05.pdf · The surface is formed from all points s.t. π(p) = p. ... Presented by Matthew Bolitho

BackgroundMoving Least Squares

Shape Representation

Claim

Points can be used as a complete representation of shape (i.e. nopolygonal mesh representation)

Provided the sampling is sufficently dense, all featurescaptured

Given a collection of points, one can define a manifold

In detailed models, triangles often project to ≤ 1 pixel –render as points anyway

Question

Is this resonable?

Presented by Matthew Bolitho Computing and Rendering Point Set Surfaces

Page 17: Computing and Rendering Point Set Surfaces › ~misha › Fall05 › bolitho.10.25.05.pdf · The surface is formed from all points s.t. π(p) = p. ... Presented by Matthew Bolitho

BackgroundMoving Least Squares

Shape Representation

Claim

Points can be used as a complete representation of shape (i.e. nopolygonal mesh representation)

Provided the sampling is sufficently dense, all featurescaptured

Given a collection of points, one can define a manifold

In detailed models, triangles often project to ≤ 1 pixel –render as points anyway

Question

Is this resonable?

Presented by Matthew Bolitho Computing and Rendering Point Set Surfaces

Page 18: Computing and Rendering Point Set Surfaces › ~misha › Fall05 › bolitho.10.25.05.pdf · The surface is formed from all points s.t. π(p) = p. ... Presented by Matthew Bolitho

BackgroundMoving Least Squares

Shape Representation

Claim

Points can be used as a complete representation of shape (i.e. nopolygonal mesh representation)

Provided the sampling is sufficently dense, all featurescaptured

Given a collection of points, one can define a manifold

In detailed models, triangles often project to ≤ 1 pixel –render as points anyway

Question

Is this resonable?

Presented by Matthew Bolitho Computing and Rendering Point Set Surfaces

Page 19: Computing and Rendering Point Set Surfaces › ~misha › Fall05 › bolitho.10.25.05.pdf · The surface is formed from all points s.t. π(p) = p. ... Presented by Matthew Bolitho

BackgroundMoving Least Squares

Resampling

A point set may be noisy and over or under sampled

Once a projection map π is known everywhere:

Noise can be reduced by mapping all points into the smoothmanifold surfacePoints can be removed to decimate the point set (remove thepoint that contributes least to g)Points can be added by placing them near the surface, thenmapping them onto the surface with π

Presented by Matthew Bolitho Computing and Rendering Point Set Surfaces

Page 20: Computing and Rendering Point Set Surfaces › ~misha › Fall05 › bolitho.10.25.05.pdf · The surface is formed from all points s.t. π(p) = p. ... Presented by Matthew Bolitho

BackgroundMoving Least Squares

Resampling

A point set may be noisy and over or under sampled

Once a projection map π is known everywhere:

Noise can be reduced by mapping all points into the smoothmanifold surfacePoints can be removed to decimate the point set (remove thepoint that contributes least to g)Points can be added by placing them near the surface, thenmapping them onto the surface with π

Presented by Matthew Bolitho Computing and Rendering Point Set Surfaces

Page 21: Computing and Rendering Point Set Surfaces › ~misha › Fall05 › bolitho.10.25.05.pdf · The surface is formed from all points s.t. π(p) = p. ... Presented by Matthew Bolitho

BackgroundMoving Least Squares

Resampling

A point set may be noisy and over or under sampled

Once a projection map π is known everywhere:

Noise can be reduced by mapping all points into the smoothmanifold surface

Points can be removed to decimate the point set (remove thepoint that contributes least to g)Points can be added by placing them near the surface, thenmapping them onto the surface with π

Presented by Matthew Bolitho Computing and Rendering Point Set Surfaces

Page 22: Computing and Rendering Point Set Surfaces › ~misha › Fall05 › bolitho.10.25.05.pdf · The surface is formed from all points s.t. π(p) = p. ... Presented by Matthew Bolitho

BackgroundMoving Least Squares

Resampling

A point set may be noisy and over or under sampled

Once a projection map π is known everywhere:

Noise can be reduced by mapping all points into the smoothmanifold surfacePoints can be removed to decimate the point set (remove thepoint that contributes least to g)

Points can be added by placing them near the surface, thenmapping them onto the surface with π

Presented by Matthew Bolitho Computing and Rendering Point Set Surfaces

Page 23: Computing and Rendering Point Set Surfaces › ~misha › Fall05 › bolitho.10.25.05.pdf · The surface is formed from all points s.t. π(p) = p. ... Presented by Matthew Bolitho

BackgroundMoving Least Squares

Resampling

A point set may be noisy and over or under sampled

Once a projection map π is known everywhere:

Noise can be reduced by mapping all points into the smoothmanifold surfacePoints can be removed to decimate the point set (remove thepoint that contributes least to g)Points can be added by placing them near the surface, thenmapping them onto the surface with π

Presented by Matthew Bolitho Computing and Rendering Point Set Surfaces

Page 24: Computing and Rendering Point Set Surfaces › ~misha › Fall05 › bolitho.10.25.05.pdf · The surface is formed from all points s.t. π(p) = p. ... Presented by Matthew Bolitho

BackgroundMoving Least Squares

Weighting Function

When computing the polynomial g , each point is weighted as:

θ(d) = e−d2

h2

Where d = dist(pi , q) and h is the variance.

Note that d is defined from q not r .

If h is small, then the neighbourhood of points in H is alsosmall, and g captures more detail.

Presented by Matthew Bolitho Computing and Rendering Point Set Surfaces

Page 25: Computing and Rendering Point Set Surfaces › ~misha › Fall05 › bolitho.10.25.05.pdf · The surface is formed from all points s.t. π(p) = p. ... Presented by Matthew Bolitho

BackgroundMoving Least Squares

Weighting Function

When computing the polynomial g , each point is weighted as:

θ(d) = e−d2

h2

Where d = dist(pi , q) and h is the variance.

Note that d is defined from q not r .

If h is small, then the neighbourhood of points in H is alsosmall, and g captures more detail.

Presented by Matthew Bolitho Computing and Rendering Point Set Surfaces

Page 26: Computing and Rendering Point Set Surfaces › ~misha › Fall05 › bolitho.10.25.05.pdf · The surface is formed from all points s.t. π(p) = p. ... Presented by Matthew Bolitho

BackgroundMoving Least Squares

Weighting Function

When computing the polynomial g , each point is weighted as:

θ(d) = e−d2

h2

Where d = dist(pi , q) and h is the variance.

Note that d is defined from q not r .

If h is small, then the neighbourhood of points in H is alsosmall, and g captures more detail.

Presented by Matthew Bolitho Computing and Rendering Point Set Surfaces

Page 27: Computing and Rendering Point Set Surfaces › ~misha › Fall05 › bolitho.10.25.05.pdf · The surface is formed from all points s.t. π(p) = p. ... Presented by Matthew Bolitho

BackgroundMoving Least Squares

Weighting Function Example

Figure from Alexa03

Presented by Matthew Bolitho Computing and Rendering Point Set Surfaces

Page 28: Computing and Rendering Point Set Surfaces › ~misha › Fall05 › bolitho.10.25.05.pdf · The surface is formed from all points s.t. π(p) = p. ... Presented by Matthew Bolitho

BackgroundMoving Least Squares

Advantages

Space requirement proportional to h, not |P|.

Generates a C∞ manifold.

Nice application of differential geometry.

h doesn’t have to be a global paramter

Presented by Matthew Bolitho Computing and Rendering Point Set Surfaces

Page 29: Computing and Rendering Point Set Surfaces › ~misha › Fall05 › bolitho.10.25.05.pdf · The surface is formed from all points s.t. π(p) = p. ... Presented by Matthew Bolitho

BackgroundMoving Least Squares

Advantages

Space requirement proportional to h, not |P|.Generates a C∞ manifold.

Nice application of differential geometry.

h doesn’t have to be a global paramter

Presented by Matthew Bolitho Computing and Rendering Point Set Surfaces

Page 30: Computing and Rendering Point Set Surfaces › ~misha › Fall05 › bolitho.10.25.05.pdf · The surface is formed from all points s.t. π(p) = p. ... Presented by Matthew Bolitho

BackgroundMoving Least Squares

Advantages

Space requirement proportional to h, not |P|.Generates a C∞ manifold.

Nice application of differential geometry.

h doesn’t have to be a global paramter

Presented by Matthew Bolitho Computing and Rendering Point Set Surfaces

Page 31: Computing and Rendering Point Set Surfaces › ~misha › Fall05 › bolitho.10.25.05.pdf · The surface is formed from all points s.t. π(p) = p. ... Presented by Matthew Bolitho

BackgroundMoving Least Squares

Advantages

Space requirement proportional to h, not |P|.Generates a C∞ manifold.

Nice application of differential geometry.

h doesn’t have to be a global paramter

Presented by Matthew Bolitho Computing and Rendering Point Set Surfaces

Page 32: Computing and Rendering Point Set Surfaces › ~misha › Fall05 › bolitho.10.25.05.pdf · The surface is formed from all points s.t. π(p) = p. ... Presented by Matthew Bolitho

BackgroundMoving Least Squares

Disadvatages

Hard to assess the time requirements: 1500-3500 points persecond on a “standard Pentium PC”

But 10-30 seconds for the 36,000 point bunny seems slow.

Presented by Matthew Bolitho Computing and Rendering Point Set Surfaces