Manifolds or why a cow is a sphere

Slides:



Advertisements
Similar presentations
Developable Surface Fitting to Point Clouds Martin Peternell Computer Aided Geometric Design 21(2004) Reporter: Xingwang Zhang June 19, 2005.
Advertisements

Discrete Differential Geometry Planar Curves 2D/3D Shape Manipulation, 3D Printing March 13, 2013 Slides from Olga Sorkine, Eitan Grinspun.
3D Morphing using Multiplanar Representation
P. Venkataraman Mechanical Engineering P. Venkataraman Rochester Institute of Technology DETC2013 – 12269: Continuous Solution for Boundary Value Problems.
Extended Gaussian Images
Shared Graphics Skills Cameras and Clipping Planes
Informationsteknologi Wednesday, November 7, 2007Computer Graphics - Class 51 Today’s class Geometric objects and transformations.
Computational Geometry & Collision detection
Xianfeng Gu, Yaling Wang, Tony Chan, Paul Thompson, Shing-Tung Yau
Lapped Textures Emil Praun and Adam Finkelstien (Princeton University) Huges Hoppe (Microsoft Research) SIGGRAPH 2000 Presented by Anteneh.
CS447/ Realistic Rendering -- Solids Modeling -- Introduction to 2D and 3D Computer Graphics.
Mesh Simplification Global and Local Methods:
Asst. Prof. Yusuf Sahillioğlu
Lapped Textures SIGGRAPH 2000 Emil Praun Adam Finkelstein Hugues Hoppe.
IE433 CAD/CAM Computer Aided Design and Computer Aided Manufacturing Part-4 Computer Graphics- CAD Software Dr. Abdulrahman M. Al-Ahmari Industrial Engineering.
Complex Model Construction Mortenson Chapter 11 Geometric Modeling
1 Numerical geometry of non-rigid shapes Non-Euclidean Embedding Non-Euclidean Embedding Lecture 6 © Alexander & Michael Bronstein tosca.cs.technion.ac.il/book.
Introduction to 3D Graphics John E. Laird. Basic Issues u Given a internal model of a 3D world, with textures and light sources how do you project it.
3-D Modeling Concepts V part 2.
Splines III – Bézier Curves
Metric Self Calibration From Screw-Transform Manifolds Russell Manning and Charles Dyer University of Wisconsin -- Madison.
Curve Modeling Bézier Curves
Chapter 9: Geometry.
Geometry Vocabulary Trivia Game Rules Choose a topic and monetary amount of your choice. The higher the amount, the more challenging the question! The.
1 Course 13: Manifolds and Modeling Monday 8:30-12:15 Cindy Grimm Media and Machines Lab Department of Computer Science and Engineering Washington University.
1 Course 21: Manifolds and Modeling Monday 8:30-12:15 Cindy Grimm Media and Machines Lab Department of Computer Science and Engineering Washington University.
Computer Graphics: Programming, Problem Solving, and Visual Communication Steve Cunningham California State University Stanislaus and Grinnell College.
COMP 175: Computer Graphics March 24, 2015
11/19/02 (c) 2002, University of Wisconsin, CS 559 Last Time Many, many modeling techniques –Polygon meshes –Parametric instancing –Hierarchical modeling.
Introduction Tracking the corners Camera model and collision detection Keyframes Path Correction Controlling the entire path of a virtual camera In computer.
A D V A N C E D C O M P U T E R G R A P H I C S CMSC 635 January 15, 2013 Spline curves 1/23 Curves and Surfaces.
1 Background and definitions Cindy Grimm. 2 Siggraph 2005, 8/1/ Overview What does it mean to be.
Unit 5 Vocab By: Mika Hamady. Acute Angle Definition: An acute angle is an angle that is less then 90 degrees. Examples: 1.A 43 degree angle is acute.
Cindy Grimm Parameterization with Manifolds Cindy Grimm.
CS 445 / 645 Introduction to Computer Graphics Lecture 23 Bézier Curves Lecture 23 Bézier Curves.
1 Surface Applications Fitting Manifold Surfaces To 3D Point Clouds, Cindy Grimm, David Laidlaw and Joseph Crisco. Journal of Biomechanical Engineering,
1 Adding charts anywhere Assume a cow is a sphere Cindy Grimm and John Hughes, “Parameterizing n-holed tori”, Mathematics of Surfaces X, 2003 Cindy Grimm,
1 Manifolds from meshes Cindy Grimm and John Hughes, “Modeling Surfaces of Arbitrary Topology using Manifolds”, Siggraph ’95 J. Cotrina Navau and N. Pla.
Constructive manifolds for surface modeling
Course 13 Curves and Surfaces. Course 13 Curves and Surface Surface Representation Representation Interpolation Approximation Surface Segmentation.
1 Applications Shmuel Peleg and Joshua Herman, “Panoramic Mosaics by Manifold Projection”, Computer Vision and Pattern Recognition (CVPR), 1997 Wolfgang.
Chapter 7 Advanced Part Modeling Techniques. After completing this chapter, you will be able to perform the following: –Extrude an open profile –Create.
Cindy Grimm Parameterizing N-holed Tori Cindy Grimm (Washington Univ. in St. Louis) John Hughes (Brown University)
Parametric Surfaces Define points on the surface in terms of two parameters Simplest case: bilinear interpolation s t s x(s,t)x(s,t) P 0,0 P 1,0 P 1,1.
A construction of rational manifold surfaces of arbitrary topology and smoothness from triangular meshes Presented by: LiuGang
Copyright © Cengage Learning. All rights reserved. 16 Vector Calculus.
04/18/02(c) 2002 University of Wisconsin Last Time Hermite Curves Bezier Curves.
11/26/02(C) University of Wisconsin Last Time BSplines.
Chapter 8 Engineering Geometry
Construction of Navau and Garcia. Basic steps Construction has two parameters: smoothness k and n > k, defining how closely the surface follows the control.
Rendering Bezier Curves (1) Evaluate the curve at a fixed set of parameter values and join the points with straight lines Advantage: Very simple Disadvantages:
Curves University of British Columbia CPSC 314 Computer Graphics Jan-Apr 2013 Tamara Munzner.
Ch. 6 Geometry Lab 6-9b Tessellations Lab 6-9b Tessellations.
GEOMETRY!!!. Points  A point is an end of a line segment.  It is an exact location in space.   It is represented by a small dot. Point A A.
Introduction to Parametric Curve and Surface Modeling.
1 Spherical manifolds for hierarchical surface modeling Cindy Grimm.
3.1 Clustering Finding a good clustering of the points is a fundamental issue in computing a representative simplicial complex. Mapper does not place any.
Constructing Objects in Computer Graphics
CS 445 / 645 Introduction to Computer Graphics
Two-Dimensional Sketching
Engineering Geometry Engineering geometry is the basic geometric elements and forms used in engineering design. Engineering and technical graphics are.
Constructing Objects in Computer Graphics By Andries van Dam©
Domain-Modeling Techniques
© University of Wisconsin, CS559 Spring 2004
Grimm and Hughes Input: arbitrary mesh
Grimm and Hughes Input: arbitrary mesh
Reverse Engineering to Trimmed Splines
Introduction to Parametric Curve and Surface Modeling
Presentation transcript:

Manifolds or why a cow is a sphere Cindy Grimm Media and Machines Lab Department of Computer Science and Engineering Washington University in St. Louis

Overview What is a manifold? Constructive definition Building a circle manifold Simple example showing concepts Using a manifold Surface modeling Applications Environment mapping Facial animation Image-based rendering Berkeley, 5/5/2005

What is a manifold? The world Overlap History: Mathematicians 1880’s How to analyze complex shapes using simple maps Cartographers World atlas Informal definition Map world to pages Each page rectangular Every part of world on at least one page Pages overlap May not agree exactly Agree enough to navigate The world Overlap Berkeley, 5/5/2005

Traditional definition A manifold M is an object that is locally Euclidean For every p in M Neighborhood U around p U maps to Rn No folding, tearing Technical note: M may be a surface embedded in Rm n is dimension of surface m >n M may be abstract (topological) 1D 2D Not manifold examples Berkeley, 5/5/2005

A mesh is manifold if… We can construct local maps around points: Point is in face Point is on edge There are exactly two faces adjacent to each edge Point is on vertex The faces around a vertex v can be flattened into the plane without folding or tearing Vertices wi adjacent to v can be ordered w0,…,wn-1 such that the triangles wi,v,w(i+1)mod n all exist Can do on abstract or embedded mesh P 3D 2D P 2D 3D Berkeley, 5/5/2005

Traditional 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 Atlas is collection of charts Every point in M in at least one chart Overlap regions Transition functions: yij = aj o ai-1 smooth M Berkeley, 5/5/2005

A circle manifold How to represent a circle? Problem: All we have are Euclidean operations In R2, must project onto circle Solution: Represent circle as repeating interval [0,2p) Point q+2pk is same for all k integer (1,0) These are embeddings 0 2p This is not Berkeley, 5/5/2005

double GetTheta() const { return m_dTheta; } /** A point on the circle, represented as an angle value from [0 to 2 pi). If the angle is * bigger (or smaller) it is shifted until it lies in the 0 to 2 pi range */ class CirclePoint { protected: double m_dTheta; public: double GetTheta() const { return m_dTheta; } CirclePoint( const double in_dTheta ) : m_dTheta( in_dTheta ) { while ( m_dTheta >= M_PI * 2.0 ) // Bring theta into the 0,2pi range m_dTheta -= 2.0 * M_PI; while ( m_dTheta < 0 ) m_dTheta += 2.0 * M_PI; } ~CirclePoint() {} }; /// Definition for S^1, an embedding of the circle class Circle { protected: public: Point2D operator()( const CirclePoint & in_circPt ) const { return Point2D( cos( in_circPt.GetTheta() ), sin( in_circPt.GetTheta() ) ); } Circle() { } ~Circle() { } }; (1,0) Berkeley, 5/5/2005

Chart on a circle Chart specification: Left and right ends of Uc Counter-clockwise order to determine overlap region Co-domain c = (-1/2,1/2) Simplest form for ac Translate Center in [0,2p) Scale qR qc Uc -1/2 1/2 ( ) ( ) qL -1/2 1/2 qR qL Berkeley, 5/5/2005

Chart on a circle ( ) Chart specification: Alpha function Sort point first Euclidean distance is topological distance Alpha inverse Point in [0,2p) ChartPoint Chart::Alpha( const CirclePoint &in_circpt ) const { const double dTheta = in_circpt.GetTheta(); double dThetaShift = dTheta; // Find the value for theta (+- 2 PI) that is closest to my chart center if ( fabs( dTheta - m_dThetaCenter ) <= M_PI ) { dThetaShift = dTheta; } else if ( fabs( (dTheta + 2.0 * M_PI) - m_dThetaCenter ) <= M_PI ) { dThetaShift = dTheta + 2.0 * M_PI; } else if ( fabs( (dTheta - 2.0 * M_PI) - m_dThetaCenter ) <= M_PI ) { dThetaShift = dTheta - 2.0 * M_PI; } else { assert( false ); } const double dT = (dThetaShift - m_dThetaCenter) * m_dScale; return ChartPoint( this, dT ); qc q ( ) q-2p CirclePoint Chart::AlphaInv( const double in_dT ) const { const double dTheta = in_dT / m_dScale + m_dThetaCenter; // Converts to 0,2pi range return CirclePoint( dTheta ); } Berkeley, 5/5/2005

Making a chart 2p qL qR 2p qR qL const Chart *Atlas::AddChart( const CirclePoint &in_circptLeft, const CirclePoint &in_circptRight ) { double dThetaMid = 0.0; double dScale = 1.0; // Does not cross 0, 2pi boundary if ( in_circptLeft.GetTheta() < in_circptRight.GetTheta() ) { dThetaMid = 0.5 * ( in_circptLeft.GetTheta() + in_circptRight.GetTheta() ); dScale = 0.5 / (in_circptRight.GetTheta() - dThetaMid); } else { // Add 2pi to right end point dThetaMid = 0.5 * ( in_circptLeft.GetTheta() + in_circptRight.GetTheta() + 2.0*M_PI ); dScale = 0.5 / (in_circptRight.GetTheta() + 2.0 * M_PI - dThetaMid); } if ( dThetaMid >= 2.0 * M_PI ) dThetaMid -= 2.0 * M_PI; if ( fabs( dScale ) < 1e-16 ) return false; const Chart *opChart = new Chart( m_aopCharts.size(), dThetaMid, dScale ); m_aopCharts.push_back( opChart ); return opChart; qL qR 2p qL qR 2p Berkeley, 5/5/2005

An example circle atlas atlas.AddChart( 0.0, M_PI ); atlas.AddChart( M_PI / 2.0, 3.0 * M_PI / 2.0 ); atlas.AddChart( M_PI, 2.0 * M_PI ); atlas.AddChart( 3.0 * M_PI / 2.0, 5.0 * M_PI / 2.0 ); Four charts Each covering ½ of circle Only 4 points not covered by two charts Check transition functions All translates Overlaps ½ of chart Chart 0 -1/2 1/2 Chart 1 Chart 2 Chart 3 Overlap regions Chart 0 Chart 1 Chart 2 Chart 3 1 Transition functions Berkeley, 5/5/2005

Why do I care? Applications: Joint angle, closed curve Advantages: Can pretend everything is Euclidean Make chart that overlaps area of interest Scaled to fit Encapsulates 2p shift once and for all Use existing code as-is Derivatives all work (atlas is smooth) Can move calculation to overlapping chart No seams No boundary conditions Berkeley, 5/5/2005

Closed curve Create an embedding of the manifold Embed each chart Standard R->R2 problem Blend between embeddings Berkeley, 5/5/2005

Joint angle example Reinforcement learning: Swing pendulum until balanced Can apply angular force at each time step Goal Learn how to apply force from any position, velocity, to get to balanced state Manifold: Circle X R Function on manifold: force to apply Learn function on each chart Blend to get force Extend to two joints: Circle X circle X R X R Pendulum Berkeley, 5/5/2005

Writing functions on manifolds Do it in pieces Write embed function per chart Can use any Rn technique Splines, RBFs, polynomials… Doesn’t have to be homogenous! Write blend function per chart k derivatives must go to zero by boundary Normalize to get partition of unity Spline functions get this for free Berkeley, 5/5/2005

Blend functions Define proto-blend function Defined on chart Support equals chart Ck – use B-Spline basis function Cinf – use rational combination of exponentials Promote to function on manifold by setting to zero Normalized blend function Divide by sum Sum not zero by atlas covering property Only influenced by overlapping charts -1/2 1/2 Proto blend function -1/2 1/2 1 Normalized blend function Berkeley, 5/5/2005

Final embedding function Embedding is weighted sum Generalization of splines Define using transition functions Derivatives Embed point in chart c Continuity is minimum continuity of constituent parts Berkeley, 5/5/2005

2D manifolds Sphere Point as x2 + y2 + z2 = 1 Latitude-longitude mappings Each chart ½ sphere (approx) Nice 6 chart partition Bounded by great arcs Polar projection Charts anywhere Center plus radius Berkeley, 5/5/2005

2D manifolds Torus Nine charts Each 2/3 of torus Torus as tiled plane Specify 4 corners Ordering matters The plane tiled with copies of t. (0,0) (2p,2p ) t The nine charts relative to t. (0,0) (2p,2p ) Berkeley, 5/5/2005

2D manifolds Torus Overlaps May be more than one disjoint region Chart i Chart j Berkeley, 5/5/2005

2D manifolds N-holed torus Hyperbolic disk tiled with 4n-sided polygon Linear fractional transforms Well-defined inverse t t Berkeley, 5/5/2005

Hyperbolic disk Unit disk with hyperbolic geometry Sum of triangle angles < 180 Angle is defined by tangents Lines are circle arcs Circles meet disk perpendicularly Berkeley, 5/5/2005

N-holed torus Why hyperbolic geometry? 4n-sided polygon 2 1 3 6 5 7 4 Why hyperbolic geometry? 4n-sided polygon Each paired edge creates loop One loop through hole One loop around Tiling Corners that meet at 2p/(4n) angles 1 6 5 4 3 2 7 Berkeley, 5/5/2005

N-holed atlas One chart for each element of polygon Face Edge Two maps to center polygon Vertex 4n maps to center polygon 2 1 4 3 7 5 6 Berkeley, 5/5/2005

N-holed arbitrary charts LFT specifies center and radius Data structures to keep track of which copies are overlapped Berkeley, 5/5/2005

Surface modeling applications Parameterization Use correct topology No seams Well-defined overlaps Mip-mapping, texture transfer, fluid-flow, procedural textures Spherical cow Berkeley, 5/5/2005

Surface modeling applications Surface reconstruction Choice of embedding function Spline, RBF, etc. Decide number of charts Fit each chart individually No boundary constraints Original mesh Ear Spline Base Tail RBF Mesh in 1-1 correspondence with manifold Berkeley, 5/5/2005

Surface modeling applications Consistent parameterizations Selected points on both meshes Parameterize both so points match Fit surface Right (reflected) Source meshes (David Laidlaw, Brown University) Left Fitted surfaces Berkeley, 5/5/2005

Surface modeling Making new models Start with manifold of correct topology User creates sketch (mesh) Embed mesh in topology Creates atlas Use mesh geometry to create chart embeddings Berkeley, 5/5/2005

Surface modeling Editing models Draw on surface to indicate locations for new charts Inverse function (embedding to manifold) well-defined Caveat: How do we ensure new charts “over-ride” old ones? Surface pasting or hierarchical editing Berkeley, 5/5/2005

Adding charts Adding new charts Option 1) Crank up blend function Option 2) “Zero-out” blend functions in higher level Define masking function h for each level Berkeley, 5/5/2005

Other applications Environment mapping Parameterization of the sphere Animation Configuration space is a manifold Image-based rendering Rotation and “push-broom” camera capture Goal is to find single image (manifold) Lining up images == finding transition functions Berkeley, 5/5/2005

Conclusion Manifolds: Provide a natural way to partition complex surfaces Simple functions on Rn Maintain analytic properties “Moving” analysis (no seams!) Separate topology from geometry Adjacency relationships Consistent parameterizations Encapsulate non-Euclidean operations Closest point, geodesics, movement in domain Berkeley, 5/5/2005