350 likes | 368 Views
Learn about the concept of manifolds, the construction of atlases, and building an atlas for a circle manifold. Understand the traditional definition of manifolds and explore examples of different types of manifolds. Discover the importance of parameterization and transition functions in creating an atlas.
E N D
Background and definitions Cindy Grimm
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 Siggraph 2005, 8/1/2005 www.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 Siggraph 2005, 8/1/2005 www.cs.wustl.edu/~cmg/Siggraph2005/siggraph.html
Smooth, closed manifold Manifold with boundary Singularity at tip Manifold with self-intersections 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 Surface examples Siggraph 2005, 8/1/2005 www.cs.wustl.edu/~cmg/Siggraph2005/siggraph.html
Can deform to separate self-intersections Traditional definition, cont. • What is not ok? • “Fins” Non-manifold Siggraph 2005, 8/1/2005 www.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 Siggraph 2005, 8/1/2005 www.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 The world Overlap Siggraph 2005, 8/1/2005 www.cs.wustl.edu/~cmg/Siggraph2005/siggraph.html
Local parameterization Mercator Map • Atlas on a manifold • Collection of pages • Parameterization (local) • Different properties • Size, navigation, percentage Images: The atlas of Canada and About Geography Siggraph 2005, 8/1/2005 www.cs.wustl.edu/~cmg/Siggraph2005/siggraph.html
Embedded vs abstract manifold • M may be abstract (topological) • No specific geometry, e.g., joint angle • M may be a surface of dimension n embedded inRm • 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) Siggraph 2005, 8/1/2005 www.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 Siggraph 2005, 8/1/2005 www.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 Siggraph 2005, 8/1/2005 www.cs.wustl.edu/~cmg/Siggraph2005/siggraph.html
Case 1: • Point is in face • Triangle goes to triangle P 3D 2D Siggraph 2005, 8/1/2005 www.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 Siggraph 2005, 8/1/2005 www.cs.wustl.edu/~cmg/Siggraph2005/siggraph.html
P 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 3D 2D Bad vertex Siggraph 2005, 8/1/2005 www.cs.wustl.edu/~cmg/Siggraph2005/siggraph.html
M Traditional atlas definition • Given: Manifold M • Construct: Atlas A • Chart • Region Uc in M (open disk) • Region c in Rn (open disk) • Function ac taking Uc to c • Inverse • Atlas is collection of charts • Every point in M in at least one chart • Overlap regions • Transition functions: y01 = a1oa0-1 smooth Siggraph 2005, 8/1/2005 www.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 2p • Tools exist for operating on lines/line segments • Spline functions • Optimization • Implementation: • How to represent points? • How to specify charts? • Overlaps? Transition functions? Siggraph 2005, 8/1/2005 www.cs.wustl.edu/~cmg/Siggraph2005/siggraph.html
(1,0) 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,2p) • Point q+2pk is same for all k integer • Always store point in [0,2p) range These are embeddings 0 2p This is not Siggraph 2005, 8/1/2005 www.cs.wustl.edu/~cmg/Siggraph2005/siggraph.html
( ) -1/2 1/2 Chart on a circle qR qc • Chart specification: • Left and right ends of Uc • Counter-clockwise order to determine overlap region • Range c = (-1/2,1/2) • Simplest form for ac • Translate • Center in [0,2p) • Scale Uc ( ) qL -1/2 1/2 qR qL Siggraph 2005, 8/1/2005 www.cs.wustl.edu/~cmg/Siggraph2005/siggraph.html
qL qR qR qL qR 0 2p 0 2p qR qL q=0 qL Making a chart AddChart( qL, qR ) { // in 0,2p range qC = 0; s = 1; // Does not cross 0, 2p boundary if (qL < qR ) { qC = 1/2 * (qL + qR ); s = 1/2 / (qR - qC); } else { // Add 2p to right end point qC = 1/2 * (qL + qR + 2p ); s = 1/2 / (qR + 2p - qC); } // Make sure in 0,2p range if (qC ≥ 2p) qC -= 2p; // Make new chart with qC and s … } qR’ Siggraph 2005, 8/1/2005 www.cs.wustl.edu/~cmg/Siggraph2005/siggraph.html
q ( ) qc q+2p q ( ) qc q ( ) qc Chart on a circle • Chart a function • Sort input point first (q→q, q+2p ,q-2p) • Euclidean distance is topological distance a( qin ) { q = qin; // Find the value for q (+-2p) closest to qc if ( | qin - qC | ≤ p ) q = qin; else if ( | (qin + 2p) - qC | ≤ p ) q = qin + 2p; else if ( | (qin - 2p) - qC | ≤ p ) q = qin - 2p; return (q - qC) * s; } q-2p Siggraph 2005, 8/1/2005 www.cs.wustl.edu/~cmg/Siggraph2005/siggraph.html
Chart on a circle • Alpha inverse • t in (-1/2, 1/2) • Returned point in [0,2p) a-1( t ) { q = t / s + qC; // Converts to 0,2p range return CirclePoint(q); } Siggraph 2005, 8/1/2005 www.cs.wustl.edu/~cmg/Siggraph2005/siggraph.html
Chart 1 Chart 0 Chart 2 Chart 3 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 1/2 -1/2 Chart 1 Transition functions: 1/2 -1/2 Chart 0 Chart 0 Chart 1 Overlap regions Siggraph 2005, 8/1/2005 www.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 Siggraph 2005, 8/1/2005 www.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 Siggraph 2005, 8/1/2005 www.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 Map each chart Embed Blend Siggraph 2005, 8/1/2005 www.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 Embed Blend Siggraph 2005, 8/1/2005 www.cs.wustl.edu/~cmg/Siggraph2005/siggraph.html
1 -1/2 1/2 1/2 -1/2 Proto blend function Normalized blend function 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 Siggraph 2005, 8/1/2005 www.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 Siggraph 2005, 8/1/2005 www.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 • ycc’ • To create a manifold object from A: • “Glue” points together that are the same, i.e., • ycc’(p)=q implies p == q • Transition functions must make sense • Reflexive: ycc(p)=p • Symmetric: yc’c(ycc’(p))=p • Transitive: yik(p)= yij(yjk(p)) Siggraph 2005, 8/1/2005 www.cs.wustl.edu/~cmg/Siggraph2005/siggraph.html
Chart 2 Chart 0 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: • y1,2(t) = t – 1/2 • y1,0(t) = t + 1/2 • y1,1(t) = t • … And similarly for other charts Chart 1 Siggraph 2005, 8/1/2005 www.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) • ac(<…(c,t)…>) = t 0.2 Chart 0 Chart 1 -0.3 Siggraph 2005, 8/1/2005 www.cs.wustl.edu/~cmg/Siggraph2005/siggraph.html
Terminology review • Manifold, adj: An object is manifold if is locally Euclidean Not manifold Manifold with self-intersections Siggraph 2005, 8/1/2005 www.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 ac : Uc →c Disk Not disk ac Uc c R2 M Siggraph 2005, 8/1/2005 www.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 ycc’from disk in Rn to disk in Rn Uc Uc’ ycc’ C C’ Siggraph 2005, 8/1/2005 www.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 Siggraph 2005, 8/1/2005 www.cs.wustl.edu/~cmg/Siggraph2005/siggraph.html