1 Background and definitions Cindy Grimm. 2 Siggraph 2005, 8/1/2005 cmg/Siggraph2005/siggraph.html...
-
Upload
andra-hill -
Category
Documents
-
view
216 -
download
2
Transcript of 1 Background and definitions Cindy Grimm. 2 Siggraph 2005, 8/1/2005 cmg/Siggraph2005/siggraph.html...
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’