Download presentation
Presentation is loading. Please wait.
Published byAndra Hill Modified over 9 years ago
1
1 Background and definitions Cindy Grimm
2
2 Siggraph 2005, 8/1/2005 www.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
3 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 R n in dimension R m, m ≥n Valid deformations Stretching, squishing Invalid deformations Folding, tearing Disk Not disk ok Not ok
4
4 Siggraph 2005, 8/1/2005 www.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 R n 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-intersections Singularity at tip Manifold with boundary Surface examples
5
5 Siggraph 2005, 8/1/2005 www.cs.wustl.edu/~cmg/Siggraph2005/siggraph.html Traditional definition, cont. What is not ok? “Fins” Non-manifold Can deform to separate self-intersections
6
6 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
7
7 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 Overlap The world
8
8 Siggraph 2005, 8/1/2005 www.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
9 Siggraph 2005, 8/1/2005 www.cs.wustl.edu/~cmg/Siggraph2005/siggraph.html Embedded vs abstract manifold M may be a surface of dimension n embedded in R m 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
10 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
11
11 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
12
12 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
13
13 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
14
14 Siggraph 2005, 8/1/2005 www.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 w i adjacent to v can be ordered w 0,…,w n-1 such that the triangles w i,v,w (i+1)mod n all exist P 2D 3D Bad vertex
15
15 Siggraph 2005, 8/1/2005 www.cs.wustl.edu/~cmg/Siggraph2005/siggraph.html Traditional atlas definition Given: Manifold M Construct: Atlas A Chart Region U c in M (open disk) Region c in R n (open disk) Function c taking U c 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
16
16 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 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
17 Siggraph 2005, 8/1/2005 www.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 R 2, must project to keep points on circle Solution: Represent circle as repeating interval [0,2 ) Point +2 k is same for all k integer Always store point in [0,2 ) range (1,0) These are embeddings This is not 0 2
18
18 Siggraph 2005, 8/1/2005 www.cs.wustl.edu/~cmg/Siggraph2005/siggraph.html ( ) Chart on a circle Chart specification: Left and right ends of U c Counter-clockwise order to determine overlap region Range c = (-1/2,1/2) Simplest form for c Translate Center in [0,2 ) Scale - 1/2 1/2 LL RR Uc -1/2 1/2 ( ) cc LL RR
19
19 Siggraph 2005, 8/1/2005 www.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 … } LL RR LL RR R’ LL RR LL RR =0
20
20 Siggraph 2005, 8/1/2005 www.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; } cc ( ) cc cc ( )
21
21 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,2 ) -1 ( t ) { = t / s + C ; // Converts to 0,2 range return CirclePoint( ); }
22
22 Siggraph 2005, 8/1/2005 www.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 Chart 0 Chart 1 Overlap regions -1/2 1/2 -1/2 1/2 Transition functions: Chart 1 Chart 0
23
23 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
24
24 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 R n 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
25 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 Embed Blend Map each chart
26
26 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
27
27 Siggraph 2005, 8/1/2005 www.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 -1/2 1/2 1 Normalized blend function -1/2 1/2 Proto blend function
28
28 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
29
29 Siggraph 2005, 8/1/2005 www.cs.wustl.edu/~cmg/Siggraph2005/siggraph.html Constructive definition Construct: Proto-Atlas A Disks Region c in R n (open disk) Overlap regions between disks U cc’ 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))
30
30 Siggraph 2005, 8/1/2005 www.cs.wustl.edu/~cmg/Siggraph2005/siggraph.html 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: 1,2 (t) = t – 1/2 1,0 (t) = t + 1/2 1,1 (t) = t … And similarly for other charts Chart 0 Chart 1 Chart 2
31
31 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 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 ( ) = t Chart 0 Chart 1 0.2 -0.3
32
32 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 Manifold with self-intersections Not manifold
33
33 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 U c on the object M to a disk c in R n. Provides a local parameterization c : U c →c Disk Not disk UcUc M cc c R2R2
34
34 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. U c ∩ U c’ not empty Transition function: A map cc’ from disk in R n to disk in R n UcUc U c’ cc’ C C’
35
35 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
Similar presentations
© 2024 SlidePlayer.com. Inc.
All rights reserved.