1 Background and definitions Cindy Grimm. 2 Siggraph 2005, 8/1/2005 cmg/Siggraph2005/siggraph.html...

35
1 Background and definitions Cindy Grimm

Transcript of 1 Background and definitions Cindy Grimm. 2 Siggraph 2005, 8/1/2005 cmg/Siggraph2005/siggraph.html...

1

Background and definitions

Cindy Grimm

2 Siggraph 2005, 8/1/2005www.cs.wustl.edu/~cmg/Siggraph2005/siggraph.html

Overview

• What does it mean to be manifold? What is an atlas?• Disks, charts, overlaps, transition functions• Mesh example

• Traditional atlas definition• Building an atlas for a circle manifold

• Constructive definition• Building an abstract manifold (circle, no explicit

geometry)• Writing functions on manifolds

• Circular curve

3 Siggraph 2005, 8/1/2005www.cs.wustl.edu/~cmg/Siggraph2005/siggraph.html

Disks and deformations

•A disk is a connected region• Doesn’t have to be circular• Boundary not included• Disk of dimension Rn in

dimension Rm, m ≥n

•Valid deformations• Stretching, squishing

•Invalid deformations• Folding, tearing

Disk Not disk

ok

Not ok

Not ok

4 Siggraph 2005, 8/1/2005www.cs.wustl.edu/~cmg/Siggraph2005/siggraph.html

Traditional manifold definition

A manifold M is an object that is locally Euclidean•For every p in M

• Neighborhood (disk) U around p, U in M

• U maps (deforms) to disk in Rn • n is dimension of manifold

• No folding, tearing•Self-intersections ok•Boundaries ok

• Map boundary to half disk•Singularities ok

Smooth, closed manifold

Manifold with self-intersectionsSingularity at tip

Manifold with boundary

Surface examples

5 Siggraph 2005, 8/1/2005www.cs.wustl.edu/~cmg/Siggraph2005/siggraph.html

Traditional definition, cont.

•What is not ok?• “Fins”

Non-manifold

Can deform to separate self-intersections

6 Siggraph 2005, 8/1/2005www.cs.wustl.edu/~cmg/Siggraph2005/siggraph.html

Other manifold examples

•Joint angles• Pendulum in 2D is a 1D manifold (circle)

• Angle• Two joints in 2D: circle X circle• One joint in 3D:

•Panorama (rotating a camera around its origin)• Each picture is piece of the manifold• Stitched-together images form manifold

Rover, nasa.gov

7 Siggraph 2005, 8/1/2005www.cs.wustl.edu/~cmg/Siggraph2005/siggraph.html

What is an atlas?

History:•Mathematicians 1880’s

• How to analyze complex shapes using simple maps

•Cartographers• World atlas

Informal definition•Map world to pages

• Each page planar (printed on piece of paper)

• Every part of world on at least one page

• Pages overlap• May not agree exactly• Agree enough to

navigate

Overlap

The world

8 Siggraph 2005, 8/1/2005www.cs.wustl.edu/~cmg/Siggraph2005/siggraph.html

Local parameterization

•Atlas on a manifold• Collection of pages• Parameterization (local)

• Different properties• Size, navigation, percentage

Mercator Map

Images: The atlas of Canada and About Geography

9 Siggraph 2005, 8/1/2005www.cs.wustl.edu/~cmg/Siggraph2005/siggraph.html

Embedded vs abstract manifold

•M may be a surface of dimension n embedded in Rm

• n is dimension of surface• m >n

Surface is of dimension n=2(a piece of paper rolled up)Embedded in m=3 dimensions

Joint angle forms n=1 dimension manifold (can increase/decrease angle)

•M may be abstract (topological)• No specific geometry, e.g.,

joint angle

10 Siggraph 2005, 8/1/2005www.cs.wustl.edu/~cmg/Siggraph2005/siggraph.html

Applying traditional manifold definition

•Familiar phrase: Assuming the mesh is manifold…•How do you prove a mesh is manifold?

• Show: Every point on the mesh has a local neighborhood• Flatten part of 3D mesh down into 2D • Requires some constraints on the mesh

At most two faces per edge

Vertices can be flattened

11 Siggraph 2005, 8/1/2005www.cs.wustl.edu/~cmg/Siggraph2005/siggraph.html

A mesh is manifold if…

… we can construct local maps around points.

•Three cases:• Point is in face• Point is on edge• Point is vertex

12 Siggraph 2005, 8/1/2005www.cs.wustl.edu/~cmg/Siggraph2005/siggraph.html

Case 1:

•Point is in face• Triangle goes to triangle

P

3D 2D

13 Siggraph 2005, 8/1/2005www.cs.wustl.edu/~cmg/Siggraph2005/siggraph.html

Case 2:

•Point is on edge• Rule: There are exactly two faces adjacent to each interior

edge, and one face adjacent to any boundary edge • Can “hinge” around edge to flatten into plane

P

3D 2D

14 Siggraph 2005, 8/1/2005www.cs.wustl.edu/~cmg/Siggraph2005/siggraph.html

Case 3:

•Point is vertex• Rule: The faces around a vertex v can be flattened into the

plane without folding or tearing• Triangles may change shape

• Vertices wi adjacent to v can be ordered w0,…,wn-1 such that the triangles wi,v,w(i+1)mod n all exist

P

2D3D

Bad vertex

15 Siggraph 2005, 8/1/2005www.cs.wustl.edu/~cmg/Siggraph2005/siggraph.html

Traditional atlas definition

Given: Manifold MConstruct: Atlas A•Chart

• Region Uc in M (open disk)• Region c in Rn (open disk)• Function c taking Uc to c

• Inverse

•Atlas is collection of charts• Every point in M in at least

one chart• Overlap regions• Transition functions:

01 = 1 o 0-1 smooth

M

01

1

10

0

16 Siggraph 2005, 8/1/2005www.cs.wustl.edu/~cmg/Siggraph2005/siggraph.html

A circle manifold

•Uses:• Closed curves• Representing a single joint angle

•Challenges:• Repeating points

• 0 is the same as 2• Tools exist for operating on lines/line segments

• Spline functions• Optimization

•Implementation:• How to represent points? • How to specify charts?

• Overlaps? Transition functions?

17 Siggraph 2005, 8/1/2005www.cs.wustl.edu/~cmg/Siggraph2005/siggraph.html

A circle manifold

How to represent points on a circle?•Problem:

• Want operations (e.g., addition) to return points on the circle

• In R2, must project to keep points on circle

•Solution:• Represent circle as repeating interval

[0,2)• Point +2k is same for all k integer

• Always store point in [0,2) range

(1,0)

)sin,(cos)(1 S

122 yxThese are embeddings

This is not

0 2

18 Siggraph 2005, 8/1/2005www.cs.wustl.edu/~cmg/Siggraph2005/siggraph.html

( )

Chart on a circle

Chart specification:

•Left and right ends of Uc

• Counter-clockwise order to determine overlap region

•Range c = (-1/2,1/2)

•Simplest form for c

• Translate• Center in [0,2)

• Scale

t-1/2 1/2

LR

tscc ))(()(

Uc

-1/2 1/2

( )c

L

R

s

19 Siggraph 2005, 8/1/2005www.cs.wustl.edu/~cmg/Siggraph2005/siggraph.html

Making a chart

AddChart( L, R ) { // in 0,2 range C = 0; s = 1;

// Does not cross 0, 2 boundary if (L < R ) { C = 1/2 * (L + R ); s = 1/2 / (R - C); } else { // Add 2 to right end point C = 1/2 * (L + R + 2 ); s = 1/2 / (R + 2 - C); } // Make sure in 0,2 range if (C ≥ 2) C -= 2;

// Make new chart with C and s …}

LR

L R

R’

L

R

L

R

=0

20 Siggraph 2005, 8/1/2005www.cs.wustl.edu/~cmg/Siggraph2005/siggraph.html

Chart on a circle•Chart function

• Sort input point first (→)

• Euclidean distance is topological distance

( in ) { = in;

// Find the value for (+-2) closest to c

if ( | in - C | ≤ ) = in; else if ( | (in + 2) - C | ≤ ) = in + 2; else if ( | (in - 2) - C | ≤ ) = in - 2; return ( - C) * s;}

c

( )

c

( )

c

( )

21 Siggraph 2005, 8/1/2005www.cs.wustl.edu/~cmg/Siggraph2005/siggraph.html

Chart on a circle•Alpha inverse

• t in (-1/2, 1/2)• Returned point in [0,2)

-1( t ) { = t / s + C;

// Converts to 0,2 range return CirclePoint();}

22 Siggraph 2005, 8/1/2005www.cs.wustl.edu/~cmg/Siggraph2005/siggraph.html

An example circle atlas•Four charts, each covering ½ of circle

• 4 points not covered by two charts•Overlaps

• ½ of chart for charts i, i+1• Transition function: translate

• No overlap for charts i, i+2

Chart 0 Chart 1

Chart 2 Chart 3

2/1)(1,0 ssChart 0 Chart 1

2/1)(0,1 tt

Overlap regions

-1/2 1/2

-1/2 1/2

Transition functions:

1 ijij

Chart 1

Chart 0

23 Siggraph 2005, 8/1/2005www.cs.wustl.edu/~cmg/Siggraph2005/siggraph.html

Why do I care?

•Charts• Avoids wrapping problem

• Get chart over area of interest• Run existing code as-is

• Optimize pendulum position

•Atlas• Embed circle using existing techniques

• E.g., splines, polynomials• No special boundary cases, e.g., duplicated end points, geometric

constraints

24 Siggraph 2005, 8/1/2005www.cs.wustl.edu/~cmg/Siggraph2005/siggraph.html

Writing functions on manifolds

Do it in pieces•Write embed function per chart

• Can use any Rn technique• Splines, Radial Basis Functions, polynomials…• Doesn’t have to be homogenous!

•Write blend function per chart• k derivatives must go to zero by boundary of chart

• Guaranteeing continuity• Normalize to get partition of unity

• Spline functions get this for free

25 Siggraph 2005, 8/1/2005www.cs.wustl.edu/~cmg/Siggraph2005/siggraph.html

Final embedding function

•Embedding is weighted sum of chart embeddings

• Generalization of splines• Given point p on manifold

• Map p into each chart• Blend function is zero if chart does not

cover p

Continuity is minimum continuity of constituent parts

Ac

cccc pEpBpE ))(())(()( Embed

Blend

))(( 00 pE

))(( 11 pE

))(( 00 pB

))(( 11 pB

)( pEMap each chart

26 Siggraph 2005, 8/1/2005www.cs.wustl.edu/~cmg/Siggraph2005/siggraph.html

Alternative formulation

•Define using transition functions• Derivatives• Pick point p in a chart

• Map p to all overlapping charts

Acccccccc pEpBpE ))(())(())(( 1

Embed

Blend

27 Siggraph 2005, 8/1/2005www.cs.wustl.edu/~cmg/Siggraph2005/siggraph.html

Embedding the circle

Embed each chart• Quadratic polynomial

•Blend function for each chart• Blend function B-spline basis• Divide by sum to normalize

•Blended result

Accc

ccc

pB

pBpB

))((ˆ

))((ˆ)(

cB

-1/2 1/2

1

Normalized blend function

-1/2 1/2

cB̂

Proto blend function

28 Siggraph 2005, 8/1/2005www.cs.wustl.edu/~cmg/Siggraph2005/siggraph.html

What if we don’t have a circle?

•Previous approach relied on having an existing manifold• Cover manifold with charts

•Suppose you want to make a manifold from scratch?• Create manifold object from disks and how they

overlap• Think of someone handing you an atlas; you can

“glue” the pages together where they overlap to re-create the manifold

• Resulting object is an abstract manifold• Requires some care to ensure glued-together

object is actually manifold

29 Siggraph 2005, 8/1/2005www.cs.wustl.edu/~cmg/Siggraph2005/siggraph.html

Constructive definition

Construct: Proto-Atlas A

•Disks

• Region c in Rn (open disk)

•Overlap regions between disks

• Ucc’ c

•Transition functions between disks

• cc’

•To create a manifold object from A:

• “Glue” points together that are the same, i.e.,

• cc’(p)=q implies p == q

•Transition functions must make sense

• Reflexive: cc(p)=p

• Symmetric: c’c(cc’(p))=p

• Transitive: ik(p)= ij(jk(p))

0112

02

1021

20

30 Siggraph 2005, 8/1/2005www.cs.wustl.edu/~cmg/Siggraph2005/siggraph.html

Four chart proto-atlas for circle

•Four intervals, each (-1/2, 1/2)•Overlap regions:

• U1,2 = (0,1/2) → U2,1 (-1/2,0)• U1,0 = (-1/2,0) → U0,1 (0,1/2)• U1,1 = (-1/2, 1/2)• U1,3 empty

•Transition functions:• 1,2(t) = t – 1/2• 1,0(t) = t + 1/2• 1,1(t) = t

… And similarly for other charts

2/1)(2,1 ssChart 0

Chart 1

2/1)(0,1 tt

Chart 2

31 Siggraph 2005, 8/1/2005www.cs.wustl.edu/~cmg/Siggraph2005/siggraph.html

Resulting abstract manifold

•What is the form of a point on the manifold?• List of charts and points in those charts <(c,t),…>

• <(0,0.2),(1,-0.3)>

•How do you map from a point on the manifold to a point in a chart?

• Extract the point from the list (if it exists)

• c(<…(c,t)…>) = t

Chart 0Chart 1

0.2

-0.3

32 Siggraph 2005, 8/1/2005www.cs.wustl.edu/~cmg/Siggraph2005/siggraph.html

Terminology review

•Manifold, adj: An object is manifold if is locally Euclidean

Manifold with self-intersections Not manifold

33 Siggraph 2005, 8/1/2005www.cs.wustl.edu/~cmg/Siggraph2005/siggraph.html

Terminology review

•Manifold, noun: An object M that is manifold• Disk: A connected region

• Chart: A map from the disk Uc on the object M to a disk c in Rn. Provides a local parameterization c : Uc →c

Disk Not disk

Uc

M

cc

R2

34 Siggraph 2005, 8/1/2005www.cs.wustl.edu/~cmg/Siggraph2005/siggraph.html

Terminology review

•Manifold, noun: An object that is manifold• Atlas: Collection of charts that cover the manifold• Overlap region: Where two charts cover the same part

of the manifold. Uc ∩ Uc’ not empty

• Transition function: A map cc’from disk in Rn to disk in Rn

Uc

Uc’

cc’C C’

35 Siggraph 2005, 8/1/2005www.cs.wustl.edu/~cmg/Siggraph2005/siggraph.html

Terminology review

•Constructive manifold: An abstract manifold built from a proto-atlas•Given:

• Disks• Overlaps between disks• Transition functions between overlap regions

•Get:• Abstract object that is manifold