350 likes | 507 Vues
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
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 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 Not ok Siggraph 2006, 7/31/2006 www.cs.wustl.edu/~cmg/
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 2006, 7/31/2006 www.cs.wustl.edu/~cmg/
Can deform to separate self-intersections Traditional definition, cont. • What is not ok? • “Fins” Non-manifold Siggraph 2006, 7/31/2006 www.cs.wustl.edu/~cmg/
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: sphere • Panorama (rotating a camera around its origin) • Each picture is piece of the manifold • Stitched-together images form manifold Rover, nasa.gov 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 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 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 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 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 3D mesh down into 2D • Requires some constraints on the mesh At most two faces per edge Vertices can be flattened 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 Siggraph 2006, 7/31/2006 www.cs.wustl.edu/~cmg/
Case 1: • Point is in face • Triangle goes to triangle P 3D 2D 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 3D 2D Siggraph 2006, 7/31/2006 www.cs.wustl.edu/~cmg/
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 2006, 7/31/2006 www.cs.wustl.edu/~cmg/
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 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 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 2006, 7/31/2006 www.cs.wustl.edu/~cmg/
(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 2006, 7/31/2006 www.cs.wustl.edu/~cmg/
( ) -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 2006, 7/31/2006 www.cs.wustl.edu/~cmg/
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 2006, 7/31/2006 www.cs.wustl.edu/~cmg/
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 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,2p) a-1( t ) { q = t / s + qC; // Converts to 0,2p range return CirclePoint(q); } Siggraph 2006, 7/31/2006 www.cs.wustl.edu/~cmg/
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 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 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 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 • Continuity is minimum continuity of constituent parts Map each chart Embed Blend 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 Siggraph 2006, 7/31/2006 www.cs.wustl.edu/~cmg/
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 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 re-create the manifold • Resulting object is an abstract manifold • Requires some care to ensure glued-together object is actually manifold 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)) Siggraph 2006, 7/31/2006 www.cs.wustl.edu/~cmg/
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 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,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 2006, 7/31/2006 www.cs.wustl.edu/~cmg/
Terminology review • Manifold, adj: An object is manifold if is locally Euclidean Not manifold Manifold with self-intersections Siggraph 2006, 7/31/2006 www.cs.wustl.edu/~cmg/
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 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 • Transition function: A map ycc’from disk in Rn to disk in Rn Uc Uc’ ycc’ C 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 Siggraph 2006, 7/31/2006 www.cs.wustl.edu/~cmg/