53
Texture-Mapping Texture-Mapping Progressive Meshes Progressive Meshes Pedro V. Pedro V. Sander Sander Steven J. Steven J. Gortler Gortler John Snyder John Snyder Hugues Hoppe Hugues Hoppe SIGGRAPH 2001 SIGGRAPH 2001 Harvard University Harvard University Microsoft Research Microsoft Research

Texture-Mapping Progressive Meshes Pedro V. Sander Steven J. Gortler John Snyder Hugues Hoppe SIGGRAPH 2001 Harvard University Microsoft Research

Embed Size (px)

Citation preview

Page 1: Texture-Mapping Progressive Meshes Pedro V. Sander Steven J. Gortler John Snyder Hugues Hoppe SIGGRAPH 2001 Harvard University Microsoft Research

Texture-MappingTexture-MappingProgressive MeshesProgressive Meshes

Texture-MappingTexture-MappingProgressive MeshesProgressive Meshes

Pedro V. SanderPedro V. SanderSteven J. GortlerSteven J. GortlerPedro V. SanderPedro V. SanderSteven J. GortlerSteven J. Gortler

John SnyderJohn SnyderHugues HoppeHugues Hoppe

John SnyderJohn SnyderHugues HoppeHugues Hoppe

SIGGRAPH 2001SIGGRAPH 2001

Harvard UniversityHarvard UniversityHarvard UniversityHarvard University Microsoft ResearchMicrosoft ResearchMicrosoft ResearchMicrosoft Research

Page 2: Texture-Mapping Progressive Meshes Pedro V. Sander Steven J. Gortler John Snyder Hugues Hoppe SIGGRAPH 2001 Harvard University Microsoft Research

Texture-MappingTexture-MappingProgressive MeshesProgressive Meshes

Texture-MappingTexture-MappingProgressive MeshesProgressive Meshes

Pedro V. SanderPedro V. SanderSteven J. GortlerSteven J. GortlerPedro V. SanderPedro V. SanderSteven J. GortlerSteven J. Gortler

John SnyderJohn SnyderHugues HoppeHugues Hoppe

John SnyderJohn SnyderHugues HoppeHugues Hoppe

SIGGRAPH 2001SIGGRAPH 2001

Harvard UniversityHarvard UniversityHarvard UniversityHarvard University Microsoft ResearchMicrosoft ResearchMicrosoft ResearchMicrosoft Research

Page 3: Texture-Mapping Progressive Meshes Pedro V. Sander Steven J. Gortler John Snyder Hugues Hoppe SIGGRAPH 2001 Harvard University Microsoft Research

progressive meshprogressive meshprogressive meshprogressive mesh

69,00069,000facesfaces

15,00015,000facesfaces

600600facesfaces

Page 4: Texture-Mapping Progressive Meshes Pedro V. Sander Steven J. Gortler John Snyder Hugues Hoppe SIGGRAPH 2001 Harvard University Microsoft Research

progressive meshprogressive meshprogressive meshprogressive mesh600600

facesfaces

simplified mesh + normal mapsimplified mesh + normal mapConveys detail of original geometryConveys detail of original geometry

simplified mesh + normal mapsimplified mesh + normal mapConveys detail of original geometryConveys detail of original geometry

69,00069,000facesfaces

15,00015,000facesfaces

600600facesfaces

Page 5: Texture-Mapping Progressive Meshes Pedro V. Sander Steven J. Gortler John Snyder Hugues Hoppe SIGGRAPH 2001 Harvard University Microsoft Research

““Texture mapping”Texture mapping”““Texture mapping”Texture mapping”

Authoring: map a texture image onto a surfaceAuthoring: map a texture image onto a surfaceAuthoring: map a texture image onto a surfaceAuthoring: map a texture image onto a surface

Page 6: Texture-Mapping Progressive Meshes Pedro V. Sander Steven J. Gortler John Snyder Hugues Hoppe SIGGRAPH 2001 Harvard University Microsoft Research

““Texture mapping”Texture mapping”““Texture mapping”Texture mapping”

Authoring: map a texture image onto a surfaceAuthoring: map a texture image onto a surfaceAuthoring: map a texture image onto a surfaceAuthoring: map a texture image onto a surface

Our problem: sample an existing surface signalOur problem: sample an existing surface signalOur problem: sample an existing surface signalOur problem: sample an existing surface signal

Page 7: Texture-Mapping Progressive Meshes Pedro V. Sander Steven J. Gortler John Snyder Hugues Hoppe SIGGRAPH 2001 Harvard University Microsoft Research

Our problemOur problemOur problemOur problem

Sample the surface signal into a texture:Sample the surface signal into a texture: (e.g. normal, displacement, BRDF, …)(e.g. normal, displacement, BRDF, …)

Goals:Goals:

single texture for entire PM sequencesingle texture for entire PM sequence

quality metricsquality metrics minimize appearance changes over PMminimize appearance changes over PM efficiently distribute the texture samplesefficiently distribute the texture samples

Sample the surface signal into a texture:Sample the surface signal into a texture: (e.g. normal, displacement, BRDF, …)(e.g. normal, displacement, BRDF, …)

Goals:Goals:

single texture for entire PM sequencesingle texture for entire PM sequence

quality metricsquality metrics minimize appearance changes over PMminimize appearance changes over PM efficiently distribute the texture samplesefficiently distribute the texture samples

demodemodemodemo

Page 8: Texture-Mapping Progressive Meshes Pedro V. Sander Steven J. Gortler John Snyder Hugues Hoppe SIGGRAPH 2001 Harvard University Microsoft Research

Our problemOur problemOur problemOur problem

Sample the surface signal into a texture:Sample the surface signal into a texture: (e.g. normal, displacement, BRDF, …)(e.g. normal, displacement, BRDF, …)

Goals:Goals:

single texture for entire PM sequencesingle texture for entire PM sequence

quality metricsquality metrics minimize appearance changes over PMminimize appearance changes over PM efficiently distribute the texture samplesefficiently distribute the texture samples

Sample the surface signal into a texture:Sample the surface signal into a texture: (e.g. normal, displacement, BRDF, …)(e.g. normal, displacement, BRDF, …)

Goals:Goals:

single texture for entire PM sequencesingle texture for entire PM sequence

quality metricsquality metrics minimize appearance changes over PMminimize appearance changes over PM efficiently distribute the texture samplesefficiently distribute the texture samples

Page 9: Texture-Mapping Progressive Meshes Pedro V. Sander Steven J. Gortler John Snyder Hugues Hoppe SIGGRAPH 2001 Harvard University Microsoft Research

Simple approach: chart-per-faceSimple approach: chart-per-faceSimple approach: chart-per-faceSimple approach: chart-per-face

Define texture for Define texture for single-LODsingle-LOD mesh. mesh.

Cannot use texture for any simpler mesh!Cannot use texture for any simpler mesh!

Define texture for Define texture for single-LODsingle-LOD mesh. mesh.

Cannot use texture for any simpler mesh!Cannot use texture for any simpler mesh!

500 faces500 faces atlas of 500 trianglesatlas of 500 triangles

[Soucy 96, Cignoni 98, Sander 00][Soucy 96, Cignoni 98, Sander 00]

Page 10: Texture-Mapping Progressive Meshes Pedro V. Sander Steven J. Gortler John Snyder Hugues Hoppe SIGGRAPH 2001 Harvard University Microsoft Research

Our approach: multi-face chartsOur approach: multi-face chartsOur approach: multi-face chartsOur approach: multi-face charts

Partition mesh into charts.Partition mesh into charts.

Simplify respecting chart topology. Simplify respecting chart topology. [Cohen 98][Cohen 98]

Same texture still applicable.Same texture still applicable.

Partition mesh into charts.Partition mesh into charts.

Simplify respecting chart topology. Simplify respecting chart topology. [Cohen 98][Cohen 98]

Same texture still applicable.Same texture still applicable.

Page 11: Texture-Mapping Progressive Meshes Pedro V. Sander Steven J. Gortler John Snyder Hugues Hoppe SIGGRAPH 2001 Harvard University Microsoft Research

Chart constraint 1:Chart constraint 1:Faces cannot span chart boundariesFaces cannot span chart boundaries

Chart constraint 1:Chart constraint 1:Faces cannot span chart boundariesFaces cannot span chart boundaries

Page 12: Texture-Mapping Progressive Meshes Pedro V. Sander Steven J. Gortler John Snyder Hugues Hoppe SIGGRAPH 2001 Harvard University Microsoft Research

Chart constraint 2:Chart constraint 2:Texture boundaries must be straightTexture boundaries must be straight

Chart constraint 2:Chart constraint 2:Texture boundaries must be straightTexture boundaries must be straight

coarse meshcoarse meshcoarse meshcoarse mesh

fine meshfine meshfine meshfine mesh

texture maptexture maptexture maptexture map

Page 13: Texture-Mapping Progressive Meshes Pedro V. Sander Steven J. Gortler John Snyder Hugues Hoppe SIGGRAPH 2001 Harvard University Microsoft Research

Our problemOur problemOur problemOur problem

Sample the surface signal into a texture:Sample the surface signal into a texture: (e.g. normal, displacement, BRDF, …)(e.g. normal, displacement, BRDF, …)

Goals:Goals:

single texture for entire PM sequencesingle texture for entire PM sequence

quality metricsquality metrics minimize appearance changes over PMminimize appearance changes over PM efficiently distribute the texture samplesefficiently distribute the texture samples

Sample the surface signal into a texture:Sample the surface signal into a texture: (e.g. normal, displacement, BRDF, …)(e.g. normal, displacement, BRDF, …)

Goals:Goals:

single texture for entire PM sequencesingle texture for entire PM sequence

quality metricsquality metrics minimize appearance changes over PMminimize appearance changes over PM efficiently distribute the texture samplesefficiently distribute the texture samples

Page 14: Texture-Mapping Progressive Meshes Pedro V. Sander Steven J. Gortler John Snyder Hugues Hoppe SIGGRAPH 2001 Harvard University Microsoft Research

Parametrization quality metricsParametrization quality metricsParametrization quality metricsParametrization quality metrics(1) Minimize (1) Minimize texture deviationtexture deviation(1) Minimize (1) Minimize texture deviationtexture deviation

(stricter than geometric error)(stricter than geometric error) [Cohen et al 98][Cohen et al 98]

demodemodemodemo

Page 15: Texture-Mapping Progressive Meshes Pedro V. Sander Steven J. Gortler John Snyder Hugues Hoppe SIGGRAPH 2001 Harvard University Microsoft Research

Parametrization quality metricsParametrization quality metricsParametrization quality metricsParametrization quality metrics(2) Minimize (2) Minimize texture stretchtexture stretch(2) Minimize (2) Minimize texture stretchtexture stretch

high stretch high stretch low stretch low stretch 2D texture2D texture

undersamplingundersampling

Page 16: Texture-Mapping Progressive Meshes Pedro V. Sander Steven J. Gortler John Snyder Hugues Hoppe SIGGRAPH 2001 Harvard University Microsoft Research

Parametrization quality metricsParametrization quality metricsParametrization quality metricsParametrization quality metrics(2) Minimize (2) Minimize texture stretchtexture stretch(2) Minimize (2) Minimize texture stretchtexture stretch

high stretch high stretch low stretch low stretch

blurringblurring

Page 17: Texture-Mapping Progressive Meshes Pedro V. Sander Steven J. Gortler John Snyder Hugues Hoppe SIGGRAPH 2001 Harvard University Microsoft Research

Contributions: Texture mapping PM’sContributions: Texture mapping PM’sContributions: Texture mapping PM’sContributions: Texture mapping PM’s

Chartification algorithmChartification algorithm (considers simplification quality)(considers simplification quality)

Texture stretch metricTexture stretch metric (penalizes undersampling)(penalizes undersampling)

Parametrization algorithm Parametrization algorithm (minimizes stretch)(minimizes stretch)

PM optimizationPM optimization

Chartification algorithmChartification algorithm (considers simplification quality)(considers simplification quality)

Texture stretch metricTexture stretch metric (penalizes undersampling)(penalizes undersampling)

Parametrization algorithm Parametrization algorithm (minimizes stretch)(minimizes stretch)

PM optimizationPM optimization

470 faces470 faces 700 faces700 faces 1,200 faces1,200 faces 10,000 faces10,000 faces

Page 18: Texture-Mapping Progressive Meshes Pedro V. Sander Steven J. Gortler John Snyder Hugues Hoppe SIGGRAPH 2001 Harvard University Microsoft Research

ApproachApproachApproachApproach

(1) partition original mesh into charts(1) partition original mesh into charts(2) parametrize charts(2) parametrize charts(3) resize chart polygons(3) resize chart polygons(4) simplify mesh(4) simplify mesh(5) optimize parametrization(5) optimize parametrization(6) pack chart polygons(6) pack chart polygons(7) sample texture images(7) sample texture images

Page 19: Texture-Mapping Progressive Meshes Pedro V. Sander Steven J. Gortler John Snyder Hugues Hoppe SIGGRAPH 2001 Harvard University Microsoft Research

ApproachApproachApproachApproach

(1) partition original mesh into charts(1) partition original mesh into charts(2) parametrize charts(2) parametrize charts(3) resize chart polygons(3) resize chart polygons(4) simplify mesh(4) simplify mesh(5) optimize parametrization(5) optimize parametrization(6) pack chart polygons(6) pack chart polygons(7) sample texture images(7) sample texture images

Page 20: Texture-Mapping Progressive Meshes Pedro V. Sander Steven J. Gortler John Snyder Hugues Hoppe SIGGRAPH 2001 Harvard University Microsoft Research

ApproachApproachApproachApproach

(1) partition original mesh into charts(1) partition original mesh into charts(2) parametrize charts(2) parametrize charts(3) resize chart polygons(3) resize chart polygons(4) simplify mesh(4) simplify mesh(5) optimize parametrization(5) optimize parametrization(6) pack chart polygons(6) pack chart polygons(7) sample texture images(7) sample texture images

Page 21: Texture-Mapping Progressive Meshes Pedro V. Sander Steven J. Gortler John Snyder Hugues Hoppe SIGGRAPH 2001 Harvard University Microsoft Research

ApproachApproachApproachApproach

(1) partition original mesh into charts(1) partition original mesh into charts(2) parametrize charts(2) parametrize charts(3) resize chart polygons(3) resize chart polygons(4) simplify mesh(4) simplify mesh(5) optimize parametrization(5) optimize parametrization(6) pack chart polygons(6) pack chart polygons(7) sample texture images(7) sample texture images

Page 22: Texture-Mapping Progressive Meshes Pedro V. Sander Steven J. Gortler John Snyder Hugues Hoppe SIGGRAPH 2001 Harvard University Microsoft Research

ApproachApproachApproachApproach

(1) partition original mesh into charts(1) partition original mesh into charts(2) parametrize charts(2) parametrize charts(3) resize chart polygons(3) resize chart polygons(4) simplify mesh(4) simplify mesh(5) optimize parametrization(5) optimize parametrization(6) pack chart polygons(6) pack chart polygons(7) sample texture images(7) sample texture images

Page 23: Texture-Mapping Progressive Meshes Pedro V. Sander Steven J. Gortler John Snyder Hugues Hoppe SIGGRAPH 2001 Harvard University Microsoft Research

ApproachApproachApproachApproach

(1) partition original mesh into charts(1) partition original mesh into charts(2) parametrize charts(2) parametrize charts(3) resize chart polygons(3) resize chart polygons(4) simplify mesh(4) simplify mesh(5) optimize parametrization(5) optimize parametrization(6) pack chart polygons(6) pack chart polygons(7) sample texture images(7) sample texture images

Page 24: Texture-Mapping Progressive Meshes Pedro V. Sander Steven J. Gortler John Snyder Hugues Hoppe SIGGRAPH 2001 Harvard University Microsoft Research

ApproachApproachApproachApproach

(1) partition original mesh into charts(1) partition original mesh into charts(2) parametrize charts(2) parametrize charts(3) resize chart polygons(3) resize chart polygons(4) simplify mesh(4) simplify mesh(5) optimize parametrization(5) optimize parametrization(6) pack chart polygons(6) pack chart polygons(7) sample texture images(7) sample texture images

Page 25: Texture-Mapping Progressive Meshes Pedro V. Sander Steven J. Gortler John Snyder Hugues Hoppe SIGGRAPH 2001 Harvard University Microsoft Research

ApproachApproachApproachApproach

(1) partition original mesh into charts(1) partition original mesh into charts(2) parametrize charts(2) parametrize charts(3) resize chart polygons(3) resize chart polygons(4) simplify mesh(4) simplify mesh(5) optimize parametrization(5) optimize parametrization(6) pack chart polygons(6) pack chart polygons(7) sample texture images(7) sample texture images

Page 26: Texture-Mapping Progressive Meshes Pedro V. Sander Steven J. Gortler John Snyder Hugues Hoppe SIGGRAPH 2001 Harvard University Microsoft Research

ApproachApproachApproachApproach

(1) partition original mesh into charts(1) partition original mesh into charts(2) parametrize charts(2) parametrize charts(3) resize chart polygons(3) resize chart polygons(4) simplify mesh(4) simplify mesh(5) optimize parametrization(5) optimize parametrization(6) pack chart polygons(6) pack chart polygons(7) sample texture images(7) sample texture images

Page 27: Texture-Mapping Progressive Meshes Pedro V. Sander Steven J. Gortler John Snyder Hugues Hoppe SIGGRAPH 2001 Harvard University Microsoft Research

Approach: DetailsApproach: DetailsApproach: DetailsApproach: Details

(1) partition original mesh into charts(1) partition original mesh into charts(2) parametrize charts(2) parametrize charts(3) resize chart polygons(3) resize chart polygons(4) simplify mesh(4) simplify mesh(5) optimize parametrization(5) optimize parametrization(6) pack chart polygons(6) pack chart polygons(7) sample texture images(7) sample texture images

Page 28: Texture-Mapping Progressive Meshes Pedro V. Sander Steven J. Gortler John Snyder Hugues Hoppe SIGGRAPH 2001 Harvard University Microsoft Research

Partition: chart mergingPartition: chart mergingPartition: chart mergingPartition: chart merging

Assign each face to its own region.Assign each face to its own region. Merge regions in greedy fashion based on Merge regions in greedy fashion based on

planarityplanarity distancedistance22 to best-fitting plane to best-fitting plane compactnesscompactness perimeter lengthperimeter length22

Preserves mesh connectivity.Preserves mesh connectivity.

[Maillot 93], [Eck 95], [Lee 98], [Garland 01][Maillot 93], [Eck 95], [Lee 98], [Garland 01]

Assign each face to its own region.Assign each face to its own region. Merge regions in greedy fashion based on Merge regions in greedy fashion based on

planarityplanarity distancedistance22 to best-fitting plane to best-fitting plane compactnesscompactness perimeter lengthperimeter length22

Preserves mesh connectivity.Preserves mesh connectivity.

[Maillot 93], [Eck 95], [Lee 98], [Garland 01][Maillot 93], [Eck 95], [Lee 98], [Garland 01]

Page 29: Texture-Mapping Progressive Meshes Pedro V. Sander Steven J. Gortler John Snyder Hugues Hoppe SIGGRAPH 2001 Harvard University Microsoft Research

Partition: boundary straighteningPartition: boundary straighteningPartition: boundary straighteningPartition: boundary straightening

Improves parametrizationImproves parametrization (boundary will be straight in texture domain)(boundary will be straight in texture domain)

Improves parametrizationImproves parametrization (boundary will be straight in texture domain)(boundary will be straight in texture domain)

Page 30: Texture-Mapping Progressive Meshes Pedro V. Sander Steven J. Gortler John Snyder Hugues Hoppe SIGGRAPH 2001 Harvard University Microsoft Research

Approach: DetailsApproach: DetailsApproach: DetailsApproach: Details

(1) partition original mesh into charts(1) partition original mesh into charts(2) parametrize charts(2) parametrize charts(3) resize chart polygons(3) resize chart polygons(4) simplify mesh(4) simplify mesh(5) optimize parametrization(5) optimize parametrization(6) pack chart polygons(6) pack chart polygons(7) sample texture images(7) sample texture images

Page 31: Texture-Mapping Progressive Meshes Pedro V. Sander Steven J. Gortler John Snyder Hugues Hoppe SIGGRAPH 2001 Harvard University Microsoft Research

ParametrizationParametrizationParametrizationParametrization

2D texture domain2D texture domain surface in 3Dsurface in 3D

linear maplinear map

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

Page 32: Texture-Mapping Progressive Meshes Pedro V. Sander Steven J. Gortler John Snyder Hugues Hoppe SIGGRAPH 2001 Harvard University Microsoft Research

ParametrizationParametrizationParametrizationParametrization

length-preserving (length-preserving (isometricisometric)) γγ = = ΓΓ = 1= 1 angle-preserving (angle-preserving (conformalconformal))γγ = = ΓΓ area-preservingarea-preserving γγ ΓΓ = 1= 1

length-preserving (length-preserving (isometricisometric)) γγ = = ΓΓ = 1= 1 angle-preserving (angle-preserving (conformalconformal))γγ = = ΓΓ area-preservingarea-preserving γγ ΓΓ = 1= 1

2D texture domain2D texture domain surface in 3Dsurface in 3D

linear maplinear mapTTTT

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

Page 33: Texture-Mapping Progressive Meshes Pedro V. Sander Steven J. Gortler John Snyder Hugues Hoppe SIGGRAPH 2001 Harvard University Microsoft Research

Stretch-minimizingStretch-minimizing parametrization parametrizationStretch-minimizingStretch-minimizing parametrization parametrization

2D texture domain2D texture domain surface in 3Dsurface in 3D

linear maplinear mapTTTT

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

LL∞∞(T) = (T) = ΓΓ

LL22(T) = √((T) = √(γγ22 + + ΓΓ22)/2)/2

LL∞∞(M) = max(M) = maxTT L L∞∞(T)(T)

LL22(M) = √ (M) = √ TT (L (L22(T))(T))22 A(T) A(T)

Page 34: Texture-Mapping Progressive Meshes Pedro V. Sander Steven J. Gortler John Snyder Hugues Hoppe SIGGRAPH 2001 Harvard University Microsoft Research

Stretch-minimization algorithmStretch-minimization algorithmStretch-minimization algorithmStretch-minimization algorithm

Start with uniform parametrization.Start with uniform parametrization. Perform several optimization iterations:Perform several optimization iterations:

for each vertex, try random line searches.for each vertex, try random line searches.

Start with uniform parametrization.Start with uniform parametrization. Perform several optimization iterations:Perform several optimization iterations:

for each vertex, try random line searches.for each vertex, try random line searches.

demodemodemodemo

Page 35: Texture-Mapping Progressive Meshes Pedro V. Sander Steven J. Gortler John Snyder Hugues Hoppe SIGGRAPH 2001 Harvard University Microsoft Research

Parametrization exampleParametrization exampleParametrization exampleParametrization example

Page 36: Texture-Mapping Progressive Meshes Pedro V. Sander Steven J. Gortler John Snyder Hugues Hoppe SIGGRAPH 2001 Harvard University Microsoft Research

Conformal Conformal parametrizationparametrization

((≈ MIPS, Floater)≈ MIPS, Floater)

L2 = 2.28 L = 10.07

LL22 stretch stretch minimizationminimization

L2 = 1.22 L = 2.13

ComparisonComparisonComparisonComparison

Page 37: Texture-Mapping Progressive Meshes Pedro V. Sander Steven J. Gortler John Snyder Hugues Hoppe SIGGRAPH 2001 Harvard University Microsoft Research

ComparisonComparisonComparisonComparison

Uniform Uniform parametrizationparametrization

L2 = 2.60 L = 12.52

LL22 stretch stretch minimizationminimization

L2 = 1.22 L = 2.13

Page 38: Texture-Mapping Progressive Meshes Pedro V. Sander Steven J. Gortler John Snyder Hugues Hoppe SIGGRAPH 2001 Harvard University Microsoft Research

Area-preserving Area-preserving parametrizationparametrization

L2 = 1.57 L = 4.19

LL22 stretch stretch minimizationminimization

L2 = 1.22 L = 2.13

ComparisonComparisonComparisonComparison

Page 39: Texture-Mapping Progressive Meshes Pedro V. Sander Steven J. Gortler John Snyder Hugues Hoppe SIGGRAPH 2001 Harvard University Microsoft Research

Example of stretch minimizationExample of stretch minimizationExample of stretch minimizationExample of stretch minimization

ignoring stretchignoring stretch minimizing stretchminimizing stretch

demodemodemodemo

Page 40: Texture-Mapping Progressive Meshes Pedro V. Sander Steven J. Gortler John Snyder Hugues Hoppe SIGGRAPH 2001 Harvard University Microsoft Research

Approach: DetailsApproach: DetailsApproach: DetailsApproach: Details

(1) partition original mesh into charts(1) partition original mesh into charts(2) parametrize charts(2) parametrize charts(3) resize chart polygons(3) resize chart polygons(4) simplify mesh(4) simplify mesh(5) optimize parametrization(5) optimize parametrization(6) pack chart polygons(6) pack chart polygons(7) sample texture images(7) sample texture images

Half-edge collapsesHalf-edge collapses ordered by deviation ordered by deviation

Constrained simplificationConstrained simplification

Half-edge collapsesHalf-edge collapses ordered by deviation ordered by deviation

Constrained simplificationConstrained simplification

Page 41: Texture-Mapping Progressive Meshes Pedro V. Sander Steven J. Gortler John Snyder Hugues Hoppe SIGGRAPH 2001 Harvard University Microsoft Research

Approach: DetailsApproach: DetailsApproach: DetailsApproach: Details

(1) partition original mesh into charts(1) partition original mesh into charts(2) parametrize charts(2) parametrize charts(3) resize chart polygons(3) resize chart polygons(4) simplify mesh(4) simplify mesh(5) optimize parametrization(5) optimize parametrization(6) pack chart polygons(6) pack chart polygons(7) sample texture images(7) sample texture images

Page 42: Texture-Mapping Progressive Meshes Pedro V. Sander Steven J. Gortler John Snyder Hugues Hoppe SIGGRAPH 2001 Harvard University Microsoft Research

Parametrization optimizationParametrization optimizationParametrization optimizationParametrization optimization

Min Min ∑∑M in PMM in PM stretch(M) + deviation(M) stretch(M) + deviation(M)

Improves deviation over entire range.Improves deviation over entire range.

Improves stretch at coarser LOD’sImproves stretch at coarser LOD’s(stretch was ignored during simplification).(stretch was ignored during simplification).

Min Min ∑∑M in PMM in PM stretch(M) + deviation(M) stretch(M) + deviation(M)

Improves deviation over entire range.Improves deviation over entire range.

Improves stretch at coarser LOD’sImproves stretch at coarser LOD’s(stretch was ignored during simplification).(stretch was ignored during simplification).

Page 43: Texture-Mapping Progressive Meshes Pedro V. Sander Steven J. Gortler John Snyder Hugues Hoppe SIGGRAPH 2001 Harvard University Microsoft Research

Approach: DetailsApproach: DetailsApproach: DetailsApproach: Details

(1) partition original mesh into charts(1) partition original mesh into charts(2) parametrize charts(2) parametrize charts(3) resize chart polygons(3) resize chart polygons(4) simplify mesh(4) simplify mesh(5) optimize parametrization(5) optimize parametrization(6) pack chart polygons(6) pack chart polygons(7) sample texture images(7) sample texture images

Page 44: Texture-Mapping Progressive Meshes Pedro V. Sander Steven J. Gortler John Snyder Hugues Hoppe SIGGRAPH 2001 Harvard University Microsoft Research

Pack chart polygonsPack chart polygonsPack chart polygonsPack chart polygons

NP-Hard problem.NP-Hard problem. We designed a heuristic.We designed a heuristic.

NP-Hard problem.NP-Hard problem. We designed a heuristic.We designed a heuristic.

Page 45: Texture-Mapping Progressive Meshes Pedro V. Sander Steven J. Gortler John Snyder Hugues Hoppe SIGGRAPH 2001 Harvard University Microsoft Research

Packing HeuristicPacking HeuristicPacking HeuristicPacking Heuristic

Calculate the minimum bounding rectangle.Calculate the minimum bounding rectangle.

Rotate chart to make rectangle vertical.Rotate chart to make rectangle vertical.

Calculate the minimum bounding rectangle.Calculate the minimum bounding rectangle.

Rotate chart to make rectangle vertical.Rotate chart to make rectangle vertical.

Page 46: Texture-Mapping Progressive Meshes Pedro V. Sander Steven J. Gortler John Snyder Hugues Hoppe SIGGRAPH 2001 Harvard University Microsoft Research

Chart placementChart placementChart placementChart placement Sort chart rectangles by height.Sort chart rectangles by height. Sequentially place left-to-right and right-to-left. Sequentially place left-to-right and right-to-left.

Sort chart rectangles by height.Sort chart rectangles by height. Sequentially place left-to-right and right-to-left. Sequentially place left-to-right and right-to-left.

~[Igarashi 01]~[Igarashi 01]~[Igarashi 01]~[Igarashi 01]

Page 47: Texture-Mapping Progressive Meshes Pedro V. Sander Steven J. Gortler John Snyder Hugues Hoppe SIGGRAPH 2001 Harvard University Microsoft Research

Approach: DetailsApproach: DetailsApproach: DetailsApproach: Details

(1) partition original mesh into charts(1) partition original mesh into charts(2) parametrize charts(2) parametrize charts(3) resize chart polygons(3) resize chart polygons(4) simplify mesh(4) simplify mesh(5) optimize parametrization(5) optimize parametrization(6) pack chart polygons(6) pack chart polygons(7) sample texture images(7) sample texture images

mipmap artifacts!mipmap artifacts!mipmap artifacts!mipmap artifacts!

Page 48: Texture-Mapping Progressive Meshes Pedro V. Sander Steven J. Gortler John Snyder Hugues Hoppe SIGGRAPH 2001 Harvard University Microsoft Research

ResultsResults(Measurements)(Measurements)

ResultsResults(Measurements)(Measurements)

Scale charts to meet low-stretch requirement.Scale charts to meet low-stretch requirement.

Stretch efficiencyStretch efficiency3D surface area / 2D chart area3D surface area / 2D chart area

Packing efficiencyPacking efficiency2D chart area / texture domain area2D chart area / texture domain area

Texture efficiencyTexture efficiencystretch efficiency * packing efficiencystretch efficiency * packing efficiency3D area / texture domain area3D area / texture domain area

Scale charts to meet low-stretch requirement.Scale charts to meet low-stretch requirement.

Stretch efficiencyStretch efficiency3D surface area / 2D chart area3D surface area / 2D chart area

Packing efficiencyPacking efficiency2D chart area / texture domain area2D chart area / texture domain area

Texture efficiencyTexture efficiencystretch efficiency * packing efficiencystretch efficiency * packing efficiency3D area / texture domain area3D area / texture domain area

////

////

////

Page 49: Texture-Mapping Progressive Meshes Pedro V. Sander Steven J. Gortler John Snyder Hugues Hoppe SIGGRAPH 2001 Harvard University Microsoft Research

ResultsResultsResultsResults

Efficiencies on fine meshes:Efficiencies on fine meshes:Efficiencies on fine meshes:Efficiencies on fine meshes:

Models bunny parasaur horse hand

# faces in Mn 69,630 43,866 96,956 60,856

# charts 75 75 120 60

uniform param. stretch efficiency

0.63 0.003 0.61 0.11

our stretch efficiency 0.84 0.63 0.80 0.68

packing efficiency 0.67 0.63 0.70 0.62

texture efficiency 0.56 0.40 0.56 0.42

Page 50: Texture-Mapping Progressive Meshes Pedro V. Sander Steven J. Gortler John Snyder Hugues Hoppe SIGGRAPH 2001 Harvard University Microsoft Research

Results across PMResults across PMResults across PMResults across PM

0

10

20

30

40

50

60

70

80

100 1000 10000 100000

number of facesst

retc

h er

ror

01

23

45

67

89

100 1000 10000 100000

number of faces

devi

atio

n er

ror

uniform uniform

min-stretchmin-stretch

min-stretch+optimmin-stretch+optim

demodemodemodemo

stretchstretchstretchstretchdeviationdeviationdeviationdeviation

Page 51: Texture-Mapping Progressive Meshes Pedro V. Sander Steven J. Gortler John Snyder Hugues Hoppe SIGGRAPH 2001 Harvard University Microsoft Research

DemosDemosDemosDemos

demodemodemodemo demodemodemodemo

Page 52: Texture-Mapping Progressive Meshes Pedro V. Sander Steven J. Gortler John Snyder Hugues Hoppe SIGGRAPH 2001 Harvard University Microsoft Research

SummarySummarySummarySummary

Automatic PM parametrization scheme.Automatic PM parametrization scheme.

Optimizes both deviation and stretch.Optimizes both deviation and stretch.

Novel stretch metric prevents undersampling Novel stretch metric prevents undersampling at all locations and in all directions.at all locations and in all directions.

Robust parametrization algorithm.Robust parametrization algorithm.

Automatic PM parametrization scheme.Automatic PM parametrization scheme.

Optimizes both deviation and stretch.Optimizes both deviation and stretch.

Novel stretch metric prevents undersampling Novel stretch metric prevents undersampling at all locations and in all directions.at all locations and in all directions.

Robust parametrization algorithm.Robust parametrization algorithm.

Page 53: Texture-Mapping Progressive Meshes Pedro V. Sander Steven J. Gortler John Snyder Hugues Hoppe SIGGRAPH 2001 Harvard University Microsoft Research

Future workFuture workFuture workFuture work

Use hierarchical parametrization.Use hierarchical parametrization.

Constrain anisotropy.Constrain anisotropy.

Consider content of texture signal.Consider content of texture signal.

Address mip-mapping problems.Address mip-mapping problems.

Use hierarchical parametrization.Use hierarchical parametrization.

Constrain anisotropy.Constrain anisotropy.

Consider content of texture signal.Consider content of texture signal.

Address mip-mapping problems.Address mip-mapping problems.