# Cindy Grimm Parameterization with Manifolds Cindy Grimm.

date post

12-Jan-2016Category

## Documents

view

219download

1

Embed Size (px)

### Transcript of Cindy Grimm Parameterization with Manifolds Cindy Grimm.

Parameterization with ManifoldsCindy Grimm

ManifoldWhat they areWhy theyre difficult to useWhen a mesh isnt good enoughProblem areas besides surface modelsA simple manifoldSphere, torus, plane, etc.Using the manifold for parameterizationFitting to existing meshes*Basic tools

What is a manifold?Surface analysis toolDeveloped in the 1880sDescribe surface as a collection of overlapping disksInfinite numberAtlasPages are disksWorld is surface

Formal definitionGiven: Surface S of dimension m embedded in Construct a set of charts, each of which maps a region of S to a disk in Mapping must be 1-1, onto, continuousEvery point in S must be in the domain of at least one chartCollection of charts is called an atlasNote: A surface is manifold if such an atlas can be constructed

Additional definitionsCo-domain of chart can also be called a chartDefine the overlap Uij to be the part of chart i that overlaps with chart j. May be empty.Transition function yij maps from Uij to Uji.

Going the other wayGiven a set of charts and transition function, define manifold to be quotientTransition functionsReflexive yii(x) = xTransitive (yik (ykj (x)) = yii (x) Symmetric yii(yji (x)) = xQuotient: if two points are associated via a transition function, then theyre the same pointChart points: chart plus (x,y) pointManifold points: a list of chart points

Manifold definitionsDefine S, define atlasOverlaps, transition functions secondaryDefine chart domains, overlaps, transition functionsManifold defined by quotientNo geometry

Adding geometryDefine an embedding for each chartCk, e.g., spline patchDefine a proto-blend function for each chartCk, k derivatives zero by boundary, non-zero on interior, e.g., spline basis functionDefine chart blend functionZero outside of chartPartition of unity

Adding geometry, cont.Final surface is a blended sum of chart embeddings

Previous workGrimm 95Mesh: one chart for each vertex, edge, faceN different transition function typesVertices of valence 4Navau and Garcia, 2000Planar mesh: Map to planeGeneral mesh: Use subdivision to separate extraordinary verticesSpecific flattening of extraordinary vertices into planeLewis and Hughes 96Complex plane, unwrap faces around vertex

Why is this hard?Finding charts, transition functions that are correct is hardStart with meshCombinatorial or number of charts explosionNo linear set of functions (?)Start with pointsAnalytic function?

Why not just a mesh?Surface modeling: smooth, locally parameterized, analyticalFunctions on meshesTexture synthesis, reaction-diffusionCurvature calculationVisualization of data on surfaceFluid flow: 2D vector drawing routinesManifolds have in-built notion of local neighborhood, moving along surface

A simple manifoldDefine one manifold for each genusPush geometric complexity into embeddingCharts simple (unit square), few in numberSubstantial chart overlapTransition functions simpleDefine by mapping to and from a canonical surface (plane, sphere, torus, etc.)Simplifies defining functions on manifold

RoadmapManifold definition for sphere, plane, torus, n-holed torusEmbedding functions for manifoldFitting a manifold to an existing mesh1-1, onto mapping from mesh to manifold

Plane manifoldOne chart (unit square)One transition function (identity)

Sphere manifoldS is the unit sphere6 charts, one for each directionMapping functions are variations of( cos(q) cos(f),sin(q) cos(f), sin(f) )Inverse functions are found by arcsin, arctan f =asin(z), q =atan2(y,z)

Sphere manifoldTop capBottom cap

Torus manifoldS is torus of inner radius 0.25, outer 1.25S(q,f)=( 1.5 + cos(q)cos(f), 1.5 + sin(q)cos(f), sin(q) )Domain 0,2pi X 0,2pi9 charts, each shifted and scaled portion of 2pi domainTorus chart

N-holed torusN-copies of torus, with one edge identified in opposite direction

EmbeddingsHierarchical splinesSpline surfaces have different sized non-zero domains

Radial basis functions

TessellationTriangulate interior of each chart, stitch together along boundary edgesFurther split faces if neededArea taken up in final embedding

Mapping from mesh to manifold1-1, onto functionMap vertices firstMap faces using barycentric coordsRequires that there exist a chart such that all three vertices of face map into that chartPlane, torus : usual barycentric coordsSphere: spherical barycentric coords

Mapping verticesGraph partition problemDivide mesh into n regions (for n charts) that meet with correct topologyProject region into interior of chartCriteria:No folding (star of vertex forms convex polygon in chart)Roughly same number of faces in each chartEach face has one chart it maps into

Sphere algorithmGrow top cap (disk)Grow bottom capJoin boundary with four edgesShortest pathVertices must be accessibleTop capBottom capDont add

Sphere algorithm, cont.Project each region onto chartRun Floaters algorithm to place vertices in chartLeast squares problemBoundary points are fixedLoc(vi) = (u,v)Place interior vertices at centroid of vertex star

Sphere algorithm, cont.Adjust projection until criteria metGet disk of faces in chartGrow (or shrink) placement based on percentage of facesReprojectMove vertices towards centroids

Results

Plane algorithmMap boundary vertices to boundary of chartInterior vertices mapped to centroid of vertex starFloaters algorithm

Torus algorithmWant three rings in 2 directionsGrow four disks, seeded far apartOne half of loop goes through one disk, other half through adjacent diskDisks meet in two disjoint regionsGrow two annuli out from diskParallel loopGrow one disk fasterRepeat

Four disks, path through green disk plus path through blue disk makes loop

Torus algorithm, cont.Three paths between loopsTotal of 9 shortest pathsGiven 9 initial regions, adjust

Algorithm analysisBest suited for 500-10,000 verticesNot guaranteed to reach solutionnarrow spots, not enough vertices around tubeUse subdivision to produce more verticesSolution existsAlternative approachesUse progressive meshes to simplify to base caseInitial vertex mappingAdd vertices back in

Fitting embeddingsEmbedding function can be arbitrarily complexNot uniformRadial basis functionsUneven distribution is not a problemFunction complexity grows with number of pointsHierarchical splinesNeed to find best patch placement

Fitting radial basis functionsOne equation each for x,y,zN vertices mapped to chart implies N basis functionsSet coefficients so surface passes through N pointsLinear equations

Fitting hierarchical splinesError metricAdd patch where error is badDistance from surface to mesh1-1 onto mapping Grid domain and evaluate at grid squaresMax(error at square, vertices in square)Add patch over largest contiguous set of bad squaresMax and average thresholds

Hierarchical splines, cont.Add patches until error metric below thresholdFind contiguous bad squaresFit patch to remaining errorDomain based on bad squaresFit to evenly spaced points in domainRefit with all patches simultaneously

Results

Summary so farEstablish 1-1, onto correspondence between mesh and manifoldCan construct embedding to create smooth surfaceApproximate mesh (splines)Exact fit (radial basis functions)

Basic tools (in progress)Functions on manifoldRatio of parameter area to surface areaEvenly distribute points on surfaceVector field in parameter spaceup, fluid flow, user-defined, principle curvatureContinuous as possibleEvenly spaced stripesBRDF

Basic tools (in progress)Surface traversalGiven a set of points, produce an orderingTexture synthesisUpper left points already visitedSpiralAlong flow pathsTexture mappingUniform/non-uniform density of pixelsOriginal mesh

ConclusionManifolds have potential as parameterization toolMeshes, implicits, patch collectionsFunction display on surface, non-photorealistic renderings, growing plants on surfacesSimple manifolds with easy-to-use toolsComputationally simple

Other future workSurface modeling interfaceLink between subdivision surfaces and manifoldsN-holed torus mapping to mesh