Title: Consistent Mesh Parameterizations
1Consistent Mesh Parameterizations
- Emil Praun (Princeton)
- Wim Sweldens (Bell Labs)
- Peter Schröder (Bell Labs)
Woefully butchered by Chris Lutz
2The University of Virginias GLunch Cavalcade
Variety Hour Presents
Perhaps a better title screen would be...
LUTZ-O THE MAGNIFICENT
A REAL LIFE Comical Dancing ! INTELLECTUAL MIDGET
!
With his Travelling Show of Pretty Pictures
3The Problem (Seriously)
- We would like to operate on a set of dis/similar
models... - ...But how do you average two heads?
- This is tough with 3D geometry
- Geometry is non-Euclidean (?)
- Differing sampling patterns and connectivity
- We need a base parameterization for a group of
models to provide a point of comparison
4The Problem (Not So Seriously)
Why, just think of all the wonderful things we
could do! We could... ADD UP HEADS Learn
Math and Anatomy at the same time! Save hours!
5More Tepid Drivel
CLOTHE THE ANIMALS No longer will Mr. Ed
gallivant unclad, gaily flashing his uncovered
loins for all to behold!
6Last One, Folks. Dont Worry.
and CREATE HIDEOUS MUTANT BOVINE/HUMAN
HYBRIDS Chuckle at their malformed
limbs! Laugh at their twisted spines! Mock their
pathetic cries for mercy!
7Consistent Parameterizations
- Establish relationships between models
- Enforce the same connectivity across dissimilar
models - If each vertex has a unique corresponding vertex
in every model, a whole bunch of wacky operations
can be performed (see the previous 3 slides for
review)
8Contributions of this Paper
- Given a base model and a set of meshes with
identified features - we can create a consistent parameterization for
all models - Then we can create remeshes of the original
models and make mutants - In case you already forgot
9Related Work
- Lots of algorithms on creating parameterized
meshes already out there - Lee et. al. created meta-meshes
- These are huge and wouldnt scale well
- Marschner et. al. worked on embedding a prototype
layout into similar models (faces) and used a
least squares fitting approach - Models must be geometrically similar for this to
work
10And Heres Where I Lose It
- Terminology
- A mesh M (P, K)
- P set of N points in 3-space
- K abstract simplicial complex (duh) set of
subsets of vertices, edges, and faces - S set of meshes M0MN
- We need to create a new coarsest mesh for all
meshes M0MN by applying base connectivity to
individual base meshes
11Step 1 (Take Valium)
- We need
- A set of meshes that have feature points defined
(either by hand or with a feature detection
algorithm) - The connectivity L0 between the feature points
(each triangle in L0 corresponds to a patch on
each of the meshes, and edges define patch
boundaries) - Now, just trace the boundaries on the models
while preserving L0 topology and outlining fair
patches! No problem.
12Topological Equivalence
- Need to satisfy 2 conditions
- Two patch boundaries can only intersect at a
feature vertex - Each feature vertex must keep the same rotational
ordering of its edges - Shortest path wont work
13More Topological Equivalence
- Instead of shortest path, use a modified brush
fire algorithm to trace the path - Restrictions
- Cant cross previously traced path
- New paths must be attached in the right place
- Be wary of encircling (1st create spanning tree)
14Fair Boundary Curves
- Ok, so we have an equivalent mapping however, it
could look really weird - Specifically, we want
- Patches of equal surface area
- Smooth patch boundaries
- Fair patch boundaries (i.e. no swirling effects)
- The first two can be achieved through
relaxation (close your eyes -- you are on a
tropical beach)
15Why Swirling Is Evil
- Reason 1 Nasty, twisted meshes
- Reason 2 Nasty, twisted math
- No swirls global min. of fairness functional
- But that leads to a non-convex, mixed
discrete-continuous global optimization problem
(The Horror! The Horror!) - So we cheat with a bunch of heuristics
16How to Thwart Swirlies
- Parameterization
- Traced curves should try to follow iso-parameter
lines (basically, patch boundaries repel each
other) - Tracing Curves
- Trace a curve along the local maximum of the
objective function - Priority Queues Spanning Trees
- Trace a tentative curve using CBF algorithm put
into a priority queue by length - Upon removal from the queue, check to see if the
tentative path is valid (doesnt cross any paths
and connects correctly) - If it is not valid, retrace the curve and stick
it back in the queue - If it is valid, run the swirl detector from both
adjacent patches - If one or both fails, put it back into the queue
with a penalty - If both pass, add the curve to the net
17The Swirl Detector
- Parametrically trace a line from c directly to
the potential path a, b - If it arrives on the wrong side, somethings
wrong (which makes sense, I suppose) - Postpone tracing a, b until a, b, and c
are linked into the rest of the net (stick it
back into the queue with a penalty)
18The Subtle Glories ofEdge-Straitening
- We now have a complete net of curves equivalent
to L0 - Do some crazy mapping of the submeshes composed
of all triangles which are incident to lines
connecting to feature point i onto an n-gon
inscribed in a unit circle - Straighten the lines and map it back into
model-space, creating new triangles as necessary
19That Wasnt So Bad, Was It?
- All examples take about the same time to process
- 900Mhz P-III
- tracing curve net 5 sec
- crude ? org 2 sec
- smoothing 1.5 min
- remeshing (43K triangles) 6 minutes
20Applications Beyond Mutants
- Principle Mesh Components one can compute
eigenheads from which one can compose new faces
from different features - Texture Transfer Mr. Ed is finally decent
- Transfer of Wavelet Details One can
mix-and-match low frequencies and high
frequencies from different models - Shape Blending Look for SimMutant at a store
near you
21Future Work
- Extend the method to handle higher-genus models
- Applications in animation perhaps a new way to
make a soda-can dance? - Model database searching by computing principle
components - More efficient compression of multiple shapes
22You Were Supposed to Be a Thing of Beauty...