Iso-charts: Stretch-driven Mesh Parameterization using Spectral Analysis Kun Zhou, John Snyder*,...

Post on 19-Dec-2015

221 views 4 download

Tags:

transcript

Iso-charts: Stretch-driven Mesh Iso-charts: Stretch-driven Mesh Parameterization using Spectral AnalysisParameterization using Spectral Analysis

Iso-charts: Stretch-driven Mesh Iso-charts: Stretch-driven Mesh Parameterization using Spectral AnalysisParameterization using Spectral Analysis

Kun Zhou, John Snyder*,Kun Zhou, John Snyder*,

Baining Guo, Heung-Yeung ShumBaining Guo, Heung-Yeung Shum

Microsoft Research AsiaMicrosoft Research Asia

Microsoft Research*Microsoft Research*

Kun Zhou, John Snyder*,Kun Zhou, John Snyder*,

Baining Guo, Heung-Yeung ShumBaining Guo, Heung-Yeung Shum

Microsoft Research AsiaMicrosoft Research Asia

Microsoft Research*Microsoft Research*

Parameterizing Arbitrary 3D MeshesParameterizing Arbitrary 3D MeshesParameterizing Arbitrary 3D MeshesParameterizing Arbitrary 3D Meshes

Chartification Texture Atlas

Goals of Mesh ParameterizationGoals of Mesh ParameterizationGoals of Mesh ParameterizationGoals of Mesh Parameterization

Large Charts Low Distortion

Iso-chart Algorithm OverviewIso-chart Algorithm OverviewIso-chart Algorithm OverviewIso-chart Algorithm Overview

Surface spectral analysisSurface spectral analysis Surface spectral analysisSurface spectral analysis

Stretch optimizationStretch optimization Stretch optimizationStretch optimization

Recursively split charts Recursively split charts until stretch criterion is metuntil stretch criterion is met

Recursively split charts Recursively split charts until stretch criterion is metuntil stretch criterion is met

Surface spectral clusteringSurface spectral clustering Surface spectral clusteringSurface spectral clustering

Optimize chart boundariesOptimize chart boundaries Optimize chart boundariesOptimize chart boundaries

Input: 3D mesh, user-specified stretch thresholdInput: 3D mesh, user-specified stretch threshold

Output: atlas having large charts with bounded stretchOutput: atlas having large charts with bounded stretch

IsoMapIsoMapIsoMapIsoMap

Data points in highdimensional space

[Tenenbaum et al, 2000]

Data points in lowdimensional space

Neighborhoodgraph

Analyze geodesic distance to uncover nonlinear manifold structureAnalyze geodesic distance to uncover nonlinear manifold structure

Surface Spectral AnalysisSurface Spectral AnalysisSurface Spectral AnalysisSurface Spectral Analysis

12d

Nd2

Nd1

1x

2x

Nx

N

i

N

j

ijji d1 1

2)||(||min yy

Geodesic Distance Distortion (GDD)

2y

Ny

1y

Surface Spectral AnalysisSurface Spectral AnalysisSurface Spectral AnalysisSurface Spectral Analysis

222

21

22

222

221

21

212

211

NNNN

N

N

N

ddd

ddd

ddd

D

Construct matrix of squared geodesic distances Construct matrix of squared geodesic distances DDNN

12d

Nd2

Nd1

1x

2x

Nx

Surface Spectral AnalysisSurface Spectral AnalysisSurface Spectral AnalysisSurface Spectral Analysis

NNNN JDJB2

1

T11IJNN

112d

Nd2

Nd1

1x

2x

Nx

Perform centering and normalization to Perform centering and normalization to DDNN

Surface Spectral AnalysisSurface Spectral AnalysisSurface Spectral AnalysisSurface Spectral Analysis

Tnn

T

T

N

v

v

v

yyy

22

11

21

|||

|||

Perform eigenanalysis on Perform eigenanalysis on BBNN to getto get embedding coords embedding coords yyii

12d

Nd2

Nd1

1x

2x

Nx

GDD-minimizing ParameterizationGDD-minimizing ParameterizationGDD-minimizing ParameterizationGDD-minimizing Parameterization

Parametric coordinates

[Zigelman et al, 2002]

Texture mapping

Produces triangle flipsProduces triangle flips Produces triangle flipsProduces triangle flips Only handles single-chart (disk-topology) modelsOnly handles single-chart (disk-topology) models Only handles single-chart (disk-topology) modelsOnly handles single-chart (disk-topology) models

Stretch-minimizing ParameterizationStretch-minimizing ParameterizationStretch-minimizing ParameterizationStretch-minimizing Parameterization

2D texture domain2D texture domain surface in 3Dsurface in 3Dlinear maplinear map

singular values: singular values: γγ , , ΓΓ

[Sander et al, 2001]

Stretch OptimizationStretch OptimizationStretch OptimizationStretch Optimization

IsoMap, L2 = 1.04, 2s IsoMap+Optimization, L2 = 1.03, 6s

[Sander01], L2 = 1.04, 222s [Sander02], L2 = 1.03, 39s

Surface Spectral ClusteringSurface Spectral ClusteringSurface Spectral ClusteringSurface Spectral Clustering

Analysis

Clustering

Surface Spectral ClusteringSurface Spectral ClusteringSurface Spectral ClusteringSurface Spectral Clustering

Get top Get top nn (≥ 3) eigenvalues/eigenvectors (≥ 3) eigenvalues/eigenvectors where where nn maximizes maximizes

For each vertex For each vertex compute compute nn-dimensional embedding coordinates-dimensional embedding coordinates

For each of the For each of the nn dimensions dimensions find two extreme vertices find two extreme vertices set them as representativesset them as representatives

Remove representatives that are too closeRemove representatives that are too close

Grow charts from representativesGrow charts from representatives

Get top Get top nn (≥ 3) eigenvalues/eigenvectors (≥ 3) eigenvalues/eigenvectors where where nn maximizes maximizes

For each vertex For each vertex compute compute nn-dimensional embedding coordinates-dimensional embedding coordinates

For each of the For each of the nn dimensions dimensions find two extreme vertices find two extreme vertices set them as representativesset them as representatives

Remove representatives that are too closeRemove representatives that are too close

Grow charts from representativesGrow charts from representatives

1/ nn 1/ nn

Surface Spectral ClusteringSurface Spectral ClusteringSurface Spectral ClusteringSurface Spectral Clustering

Ni

i

ni

i

,1,1

n=3 n=4

Surface Spectral ClusteringSurface Spectral ClusteringSurface Spectral ClusteringSurface Spectral Clustering

43 /1/ nn

n=1: 2 charts n=2: 4 charts n=4: 8 chartsn=3: 6 charts

Optimizing Partition BoundariesOptimizing Partition BoundariesOptimizing Partition BoundariesOptimizing Partition Boundaries

S T

create nonjaggy cut, through “crease” edges [Katz2003]create nonjaggy cut, through “crease” edges [Katz2003] create nonjaggy cut, through “crease” edges [Katz2003]create nonjaggy cut, through “crease” edges [Katz2003]

minimize embedding distortionminimize embedding distortion minimize embedding distortionminimize embedding distortion

Optimizing Partition BoundariesOptimizing Partition BoundariesOptimizing Partition BoundariesOptimizing Partition Boundaries

Angular capacity alone [Katz et al, 2003]

Distortion capacity alone Combined capacity

Special Spectral ClusteringSpecial Spectral ClusteringSpecial Spectral ClusteringSpecial Spectral Clustering

Avoid excessive partition for simple shapesAvoid excessive partition for simple shapes

Avoid excessive partition for simple shapesAvoid excessive partition for simple shapes

9.01

3

1

N

i

i

i

i 9.01

3

1

N

i

i

i

i

n > 2 n = 21st dimension

n = 22nd dimension

n = 23rd dimension

Special clustering for tabular shapesSpecial clustering for tabular shapes Special clustering for tabular shapesSpecial clustering for tabular shapes

Signal-Specialized Atlas CreationSignal-Specialized Atlas CreationSignal-Specialized Atlas CreationSignal-Specialized Atlas Creation

Signal-specialized parameterization [Sander02]Signal-specialized parameterization [Sander02] Signal-specialized parameterization [Sander02]Signal-specialized parameterization [Sander02]

Combine geodesic and signal distancesCombine geodesic and signal distances Combine geodesic and signal distancesCombine geodesic and signal distances

geometry stretch signal stretch

)(

),()1(

)(

),(),(

sig

sig

geo

geocomb davg

jid

davg

jidjid

Implementation DetailsImplementation DetailsImplementation DetailsImplementation Details

AccelerationAcceleration

Landmark IsoMap [Silva et al, 2003]Landmark IsoMap [Silva et al, 2003]

Only compute the top Only compute the top 1010 eigenvalues eigenvalues

AccelerationAcceleration

Landmark IsoMap [Silva et al, 2003]Landmark IsoMap [Silva et al, 2003]

Only compute the top Only compute the top 1010 eigenvalues eigenvalues

Merge small charts as a post-processMerge small charts as a post-process Merge small charts as a post-processMerge small charts as a post-process

Partition ProcessPartition ProcessPartition ProcessPartition Process

ResultsResultsResultsResults

19 charts, L2=1.03, running time 98s, 97k faces

ResultsResultsResultsResults

38 charts, L2=1.07, running time 287s, 150k faces

ResultsResultsResultsResults

23 charts, L2=1.06, running time 162s, 112k faces

ResultsResultsResultsResults

11 charts, L2=1.01, running time 4s, 10k faces

ResultsResultsResultsResults

11 charts, L2=1.02, running time 90s, 90k faces

ResultsResultsResultsResults

6 charts, L2=1.03, running time 17s, 40k faces

Geometry RemeshingGeometry RemeshingGeometry RemeshingGeometry Remeshing

Remeshing ComparisonRemeshing ComparisonRemeshing ComparisonRemeshing Comparison

Original model [Sander03], 79.5dB Iso-chart, 82.9dB

LOD Generation for Texture SynthesisLOD Generation for Texture SynthesisLOD Generation for Texture SynthesisLOD Generation for Texture Synthesis

32x32 64x64 128x128

Texture Synthesis ResultsTexture Synthesis ResultsTexture Synthesis ResultsTexture Synthesis Results

Texture Synthesis ResultsTexture Synthesis ResultsTexture Synthesis ResultsTexture Synthesis Results

Signal-Specialized Atlas CreationSignal-Specialized Atlas CreationSignal-Specialized Atlas CreationSignal-Specialized Atlas Creation

Original Geometry stretchSAE = 20.8

Signal paramSAE = 17.9

Signal chart&paramSAE = 16.5

Signal-Specialized Atlas CreationSignal-Specialized Atlas CreationSignal-Specialized Atlas CreationSignal-Specialized Atlas Creation

Original Geometry stretchSAE = 18.7

Signal paramSAE = 11.5

Signal chart&paramSAE = 9.7

ConclusionConclusionConclusionConclusion

Surface spectral analysis Surface spectral analysis for parameterizationfor parameterization

– provides good starting point for stretch provides good starting point for stretch minimizationminimization

for chartificationfor chartification

– separates global features wellseparates global features well

– optimizes chart boundariesoptimizes chart boundaries

– yields special partition for tubular shapesyields special partition for tubular shapes

Surface spectral analysis Surface spectral analysis for parameterizationfor parameterization

– provides good starting point for stretch provides good starting point for stretch minimizationminimization

for chartificationfor chartification

– separates global features wellseparates global features well

– optimizes chart boundariesoptimizes chart boundaries

– yields special partition for tubular shapesyields special partition for tubular shapes Signal-specialized atlas creationSignal-specialized atlas creation Signal-specialized atlas creationSignal-specialized atlas creation

Iso-chart: a fast and effective atlas generatorIso-chart: a fast and effective atlas generator Iso-chart: a fast and effective atlas generatorIso-chart: a fast and effective atlas generator