33D Surface ParameterizationD Surface Parameterization
Olga Sorkine, May 2005Olga Sorkine, May 2005
Part OnePart One
Parameterization and PartitionParameterization and Partition
Some slides borrowed from Pierre Alliez and Craig Gotsman
What is a parameterization?What is a parameterization?
S S ⊆⊆ RR3 3 -- given surfacegiven surface
D D ⊆⊆ RR22 -- parameter domainparameter domain
ss : D : D →→ S 1S 1--1 and onto 1 and onto
⎟⎟⎟
⎠
⎞
⎜⎜⎜
⎝
⎛=
),(),(),(
),(vuzvuyvux
vus
Example Example –– flattening the earthflattening the earth
Isoparametric curves Isoparametric curves on the surfaceon the surface
One parameter fixed, one varies:One parameter fixed, one varies:
Family 1 (varying u): Family 1 (varying u): LLv0 v0 ((uu)) = = ss((uu, v, v00))
Family 2 (varying v): Family 2 (varying v): MMu0 u0 ((vv)) = = ss((vv00, , vv))
Analytic example:Analytic example:
Parameters: Parameters: u = u = x, v = yx, v = y
D = D = [[––1,11,1]]××[[––1,1]1,1]. .
z = zz = z((x,yx,y)) = = ––((xx22+y+y22))
ss((x,yx,y)) = = ((x, y, zx, y, z((x,yx,y))))
-1
1
π α
h
Another example:Another example:
Parameters: Parameters: αα, h, h
D = D = [0,[0,ππ]]××[[––1,1]1,1]
xx((αα, h, h)) = = coscos((αα))
yy((αα, h, h)) = h= h
zz((αα, h, h)) = sin= sin((αα))
Triangular MeshTriangular Mesh
•• Standard Standard discretediscrete 3D surface representation 3D surface representation in Computer Graphics in Computer Graphics –– piecewise linearpiecewise linear
•• Mesh GeometryMesh Geometry: list of vertices (3D points of : list of vertices (3D points of the surface)the surface)
•• Mesh Connectivity or TopologyMesh Connectivity or Topology: description : description of the facesof the faces
Triangular MeshTriangular Mesh Triangular MeshTriangular Mesh
Mesh RepresentationMesh RepresentationGeometryGeometry::vv1 1 –– (x(x11, y, y11, z, z11))vv2 2 –– (x(x22, y, y22, z, z22))vv3 3 –– (x(x33, y, y33, z, z33))......vvnn –– ((xxnn, , yynn, , zznn))
TopologyTopology::Triangle listTriangle list{{vv11, v, v22, v, v33}}......{{vvkk, , vvll, , vvmm}}
vv11
vv22vv33
vvnn
Mesh ParameterizationMesh Parameterization
•• Uniquely defined by mapping mesh Uniquely defined by mapping mesh vertices to the parameter domain:vertices to the parameter domain:
UU : {v: {v11, , ……, , vvnn}} →→ D D ⊆⊆ RR22
UU(v(vii) = () = (uuii, v, vii))•• No two edges cross in the plane (in No two edges cross in the plane (in DD))
Mesh parameterization Mesh parameterization ⇔⇔ mesh embeddingmesh embedding
Mesh ParameterizationMesh Parameterization
Parameter domain
D ⊆ R2Mesh surface
S ⊆ R3
EmbeddingEmbedding UU
ParameterizationParameterization ss
s = U -1
MeshMesh ParameterizationParameterization
Mesh ParameterizationMesh Parameterization
ss and and UU are piecewiseare piecewise--linearlinearLinear inside each mesh triangleLinear inside each mesh triangle
In 2D In 3DUU
ss
A mapping between two triangles is a unique affine mapping
A B
C
P
BarycentricBarycentric CoordinatesCoordinates
, , , , , ,, , , , , ,
, , denotes the (signed) area of the triangle
P B C P C A P A BP A B C
A B C A B C A B C= + +
⋅ ⋅ ⋅
Mapping between TrianglesMapping between Trianglesss
p1p2
p3
q1 q2
q3
3321
212
321
131
321
32
,,,,
,,,,
,,,,
)( qppp
ppq
ppppp
qppppp ppp
ps ++=
•• Only topological disks can be embeddedOnly topological disks can be embedded
•• Other topologies must be Other topologies must be ““cutcut”” or partitionedor partitioned
NonNon--SimpleSimple DomainsDomains CuttingCutting
Applications of parameterizationApplications of parameterization
•• Texture mappingTexture mapping•• Surface resampling (Surface resampling (remeshingremeshing))
–– Mesh compressionMesh compression–– MultiresolutionMultiresolution analysisanalysis
Using parameterization, we can operate Using parameterization, we can operate on the 3D surface as if it were flaton the 3D surface as if it were flat
Texture mappingTexture mapping
RemeshingRemeshing RemeshingRemeshing
RemeshingRemeshing
parameterizationparameterization
resamplingresampling
RemeshingRemeshing
RemeshingRemeshing examplesexamples More More remeshingremeshing examplesexamples
Bad parameterizationBad parameterization…… Example of severe distortionExample of severe distortion
Distortion measuresDistortion measures
•• Angle preservationAngle preservation•• Area preservationArea preservation•• StretchStretch•• etc...etc...
Bad parameterizationBad parameterization
BetterBetter……Distortion minimizationDistortion minimization
Kent et al ‘92 Floater 97 Sander et al ‘01
Texture map
ResamplingResampling problemsproblems
Cat mesh Distortingembedding
Resamplingon regular grid
Dealing with distortion and Dealing with distortion and nonnon--disk topologydisk topology
ProblemsProblems: : 1) Parameterization of complex surfaces 1) Parameterization of complex surfaces
introduces introduces distortion. distortion. 2) Only topological disk can be embedded.2) Only topological disk can be embedded.
SolutionSolution: : partitionpartition the mesh into several the mesh into several patches and/or introduce patches and/or introduce seams (cuts)seams (cuts), , parameterize each patch independently.parameterize each patch independently.
PartitioningPartitioning Introducing seams (cuts)Introducing seams (cuts)
Introducing seams (cuts)Introducing seams (cuts) Introducing seams (cuts)Introducing seams (cuts)
Introducing seams (cuts)Introducing seams (cuts) ProblemsProblems•• Discontinuity of parameterizationDiscontinuity of parameterization•• Visible artifacts in texture mappingVisible artifacts in texture mapping•• Require special treatmentRequire special treatment
–– Vertices along seams have several (u,v) Vertices along seams have several (u,v) coordinatescoordinates
–– Problems in Problems in mipmip--mappingmapping
Make seams short and hide them
SummarySummary
•• ““GoodGood”” parameterization = nonparameterization = non--distortingdistorting–– Angles and area preservationAngles and area preservation–– Continuous parameterization of complex surfaces Continuous parameterization of complex surfaces
cannot avoid distortion.cannot avoid distortion.
•• ““GoodGood”” partition/cut:partition/cut:–– Large patches, minimize seam lengthLarge patches, minimize seam length–– Align seams with features (=hide them)Align seams with features (=hide them)
End of Part OneEnd of Part One