Background and definitions Cindy Grimm Siggraph 2006 7312006
Background and definitions Cindy Grimm Siggraph 2006, 7/31/2006 www. cs. wustl. edu/~cmg/
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 2 Siggraph 2006, 7/31/2006 www. cs. wustl. edu/~cmg/
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 3 Siggraph 2006, 7/31/2006 www. cs. wustl. edu/~cmg/
Traditional manifold definition A manifold M is an object that is locally Euclidean • For every p in M • Neighborhood (disk) U around p, Smooth, closed manifold Manifold with boundary 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 Singularity at tip Manifold with self-intersections • Singularities ok Surface examples 4 Siggraph 2006, 7/31/2006 www. cs. wustl. edu/~cmg/
Traditional definition, cont. • What is not ok? • “Fins” Non-manifold Can deform to separate self-intersections 5 Siggraph 2006, 7/31/2006 www. cs. wustl. edu/~cmg/
Other manifold examples • Joint angles • Pendulum in 2 D is a 1 D manifold (circle) • Angle • Two joints in 2 D: circle X circle • One joint in 3 D: sphere • Panorama (rotating a camera around its origin) • Each picture is piece of the manifold • Stitched-together images form manifold Rover, nasa. gov 6 Siggraph 2006, 7/31/2006 www. cs. wustl. edu/~cmg/
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 7 Siggraph 2006, 7/31/2006 www. cs. wustl. edu/~cmg/
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 2006, 7/31/2006 8 www. cs. wustl. edu/~cmg/
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 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) 9 Siggraph 2006, 7/31/2006 www. cs. wustl. edu/~cmg/
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 3 D mesh down into 2 D • Requires some constraints on the mesh At most two faces per edge Vertices can be flattened 10 Siggraph 2006, 7/31/2006 www. cs. wustl. edu/~cmg/
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 11 Siggraph 2006, 7/31/2006 www. cs. wustl. edu/~cmg/
Case 1: • Point is in face • Triangle goes to triangle P 3 D 2 D 12 Siggraph 2006, 7/31/2006 www. cs. wustl. edu/~cmg/
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 3 D 2 D 13 Siggraph 2006, 7/31/2006 www. cs. wustl. edu/~cmg/
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 w 0, …, wn-1 such that the triangles wi, v, w(i+1)mod n all exist P 3 D 2 D 14 Bad vertex Siggraph 2006, 7/31/2006 www. cs. wustl. edu/~cmg/
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 M • Atlas is collection of charts • Every point in M in at least one chart • Overlap regions • Transition functions: y 01 = a 1 o a 0 -1 smooth 15 Siggraph 2006, 7/31/2006 www. cs. wustl. edu/~cmg/
A circle manifold • Uses: • Closed curves • Representing a single joint angle • Challenges: • Repeating points • 0 is the same as 2 p • Tools exist for operating on lines/line segments • Spline functions • Optimization • Implementation: • How to represent points? • How to specify charts? • Overlaps? Transition functions? 16 Siggraph 2006, 7/31/2006 www. cs. wustl. edu/~cmg/
A circle manifold How to represent points on a circle? • Problem: • Want operations (e. g. , addition) to return points on the circle • In R 2, must project to keep points on circle • Solution: • Represent circle as repeating interval [0, 2 p) • Point q+2 pk is same for all k integer • Always store point in [0, 2 p) range 17 (1, 0) These are embeddings 0 2 p This is not Siggraph 2006, 7/31/2006 www. cs. wustl. edu/~cmg/
Chart on a circle q. R 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, 2 p) • Scale Uc -1/2 q. L -1/2 q. R 18 (( ) ) 1/2 q. L Siggraph 2006, 7/31/2006 www. cs. wustl. edu/~cmg/
Making a chart Add. Chart( q. L, q. R ) { // in 0, 2 p range q. C = 0; s = 1; 0 // Does not cross 0, 2 p boundary if (q. L < q. R ) { q. C = 1/2 * (q. L + q. R ); s = 1/2 / (q. R - q. C); } else { // Add 2 p to right end point q. C = 1/2 * (q. L + q. R + 2 p ); s = 1/2 / (q. R + 2 p - q. C); } // Make sure in 0, 2 p range if (q. C ≥ 2 p) q. C -= 2 p; } // Make new chart with … 2 p q. L q. R 0 2 p q. R q. L q. R q=0 q. R’ q. L q. C and s 19 Siggraph 2006, 7/31/2006 www. cs. wustl. edu/~cmg/
Chart on a circle • Chart a function • Sort input point first (q→q, q+2 p , q-2 p ) • Euclidean distance is topological distance a( qin ) { q = qin; // Find the value for q (+-2 p) closest to qc if ( | qin - q. C | ≤ p ) q = qin; else if ( | (qin + 2 p) - q. C | ≤ p ) q = qin + 2 p; else if ( | (qin - 2 p) - q. C | ≤ p ) q = qin - 2 p; } return (q - q. C) * s; ( qc q ) q+2 p q ( q-2 p ( qc ) qc 20 Siggraph 2006, 7/31/2006 www. cs. wustl. edu/~cmg/
Chart on a circle • Alpha inverse • t in (-1/2, 1/2) • Returned point in [0, 2 p) a-1( t ) { q = t / s + q C; } // Converts to 0, 2 p range return Circle. Point(q); 21 Siggraph 2006, 7/31/2006 www. cs. wustl. edu/~cmg/
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 0 -1/2 Chart 1 1/2 Chart 0 Chart 1 Chart 2 Chart 3 Transition functions: Chart 0 Chart 1 Overlap regions 22 Siggraph 2006, 7/31/2006 www. cs. wustl. edu/~cmg/
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 23 Siggraph 2006, 7/31/2006 www. cs. wustl. edu/~cmg/
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 24 Siggraph 2006, 7/31/2006 www. cs. wustl. edu/~cmg/
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 Map each chart Embed Blend Continuity is minimum continuity of constituent parts 25 Siggraph 2006, 7/31/2006 www. cs. wustl. edu/~cmg/
Alternative formulation • Define using transition functions • Derivatives • Pick point p in a chart • Map p to all overlapping charts Embed Blend 26 Siggraph 2006, 7/31/2006 www. cs. wustl. edu/~cmg/
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 1 -1/2 Proto blend function -1/2 Normalized blend function 27 Siggraph 2006, 7/31/2006 www. cs. wustl. edu/~cmg/
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 recreate the manifold • Resulting object is an abstract manifold • Requires some care to ensure glued-together object is actually manifold 28 Siggraph 2006, 7/31/2006 www. cs. wustl. edu/~cmg/
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)) 29 Siggraph 2006, 7/31/2006 www. cs. wustl. edu/~cmg/
Four chart proto-atlas for circle • Four intervals, each (-1/2, 1/2) • Overlap regions: • U 1, 2 = (0, 1/2) → U 2, 1 (-1/2, 0) • U 1, 0 = (-1/2, 0) → U 0, 1 (0, 1/2) • U 1, 1 = (-1/2, 1/2) • U 1, 3 empty • Transition functions: • y 1, 2(t) = t – 1/2 Chart 0 • y 1, 0(t) = t + 1/2 • y 1, 1(t) = t … And similarly for other charts 30 Chart 2 Chart 1 Siggraph 2006, 7/31/2006 www. cs. wustl. edu/~cmg/
Resulting abstract manifold • What is the form of a point on the manifold? • List of charts and points in those charts <(c, t), …> 0. 2 • <(0, 0. 2), (1, -0. 3)> Chart 0 -0. 3 Chart 1 • 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 31 Siggraph 2006, 7/31/2006 www. cs. wustl. edu/~cmg/
Terminology review • Manifold, adj: An object is manifold if is locally Euclidean Manifold with self-intersections 32 Not manifold Siggraph 2006, 7/31/2006 www. cs. wustl. edu/~cmg/
Terminology review • Manifold, noun: An object M that is manifold • Disk: A connected region Disk Not disk • Chart: A map from the disk Uc on the object M to a disk c in Rn. Provides a local parameterization ac : Uc →c Uc ac c R 2 M 33 Siggraph 2006, 7/31/2006 www. cs. wustl. edu/~cmg/
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 Uc Uc’ • Transition function: A map ycc’ from disk in Rn to disk in Rn C ycc’ 34 C’ Siggraph 2006, 7/31/2006 www. cs. wustl. edu/~cmg/
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 35 Siggraph 2006, 7/31/2006 www. cs. wustl. edu/~cmg/
- Slides: 35