SIGGRAPH 2001 TextureMapping Progressive Meshes Pedro V Sander








![Simple approach: chart-per-face [Soucy 96, Cignoni 98, Sander 00] 500 faces atlas of 500 Simple approach: chart-per-face [Soucy 96, Cignoni 98, Sander 00] 500 faces atlas of 500](https://slidetodoc.com/presentation_image_h/27bab9b44210c8d1c2b2c974a94e93fb/image-9.jpg)












































- Slides: 53
SIGGRAPH 2001 Texture-Mapping Progressive Meshes Pedro V. Sander Steven J. Gortler Harvard University John Snyder Hugues Hoppe Microsoft Research
SIGGRAPH 2001 Texture-Mapping Progressive Meshes Pedro V. Sander Steven J. Gortler Harvard University John Snyder Hugues Hoppe Microsoft Research
69, 000 faces 15, 000 faces progressive mesh 600 faces
69, 000 faces 15, 000 faces 600 faces progressive mesh 600 faces simplified mesh + normal map Conveys detail of original geometry
“Texture mapping” Authoring: map a texture image onto a surface
“Texture mapping” Authoring: map a texture image onto a surface Our problem: sample an existing surface signal
Our problem Sample the surface signal into a texture: (e. g. normal, displacement, BRDF, …) Goals: l single texture for entire PM sequence l quality metrics n n minimize appearance changes over PM efficiently distribute the texture samples demo
Our problem Sample the surface signal into a texture: (e. g. normal, displacement, BRDF, …) Goals: l single texture for entire PM sequence l quality metrics n n minimize appearance changes over PM efficiently distribute the texture samples
Simple approach: chart-per-face [Soucy 96, Cignoni 98, Sander 00] 500 faces atlas of 500 triangles l Define texture for single-LOD mesh. l Cannot use texture for any simpler mesh!
Our approach: multi-face charts l Partition mesh into charts. l Simplify respecting chart topology. l Same texture still applicable. [Cohen 98]
Chart constraint 1: Faces cannot span chart boundaries
Chart constraint 2: Texture boundaries must be straight fine mesh coarse mesh texture map
Our problem Sample the surface signal into a texture: (e. g. normal, displacement, BRDF, …) Goals: l single texture for entire PM sequence l quality metrics n n minimize appearance changes over PM efficiently distribute the texture samples
Parametrization quality metrics (1) Minimize texture deviation (stricter than geometric error) demo [Cohen et al 98]
Parametrization quality metrics (2) Minimize texture stretch undersampling 2 D texture high stretch low stretch
Parametrization quality metrics (2) Minimize texture stretch blurring high stretch low stretch
Contributions: Texture mapping PM’s 470 faces 700 faces 1, 200 faces 10, 000 faces l Chartification algorithm (considers simplification quality) l Texture stretch metric (penalizes undersampling) l Parametrization algorithm (minimizes stretch) l PM optimization
Approach (1) partition original mesh into charts (2) parametrize charts (3) resize chart polygons (4) simplify mesh (5) optimize parametrization (6) pack chart polygons (7) sample texture images
Approach (1) partition original mesh into charts (2) parametrize charts (3) resize chart polygons (4) simplify mesh (5) optimize parametrization (6) pack chart polygons (7) sample texture images
Approach (1) partition original mesh into charts (2) parametrize charts (3) resize chart polygons (4) simplify mesh (5) optimize parametrization (6) pack chart polygons (7) sample texture images
Approach (1) partition original mesh into charts (2) parametrize charts (3) resize chart polygons (4) simplify mesh (5) optimize parametrization (6) pack chart polygons (7) sample texture images
Approach (1) partition original mesh into charts (2) parametrize charts (3) resize chart polygons (4) simplify mesh (5) optimize parametrization (6) pack chart polygons (7) sample texture images
Approach (1) partition original mesh into charts (2) parametrize charts (3) resize chart polygons (4) simplify mesh (5) optimize parametrization (6) pack chart polygons (7) sample texture images
Approach (1) partition original mesh into charts (2) parametrize charts (3) resize chart polygons (4) simplify mesh (5) optimize parametrization (6) pack chart polygons (7) sample texture images
Approach (1) partition original mesh into charts (2) parametrize charts (3) resize chart polygons (4) simplify mesh (5) optimize parametrization (6) pack chart polygons (7) sample texture images
Approach (1) partition original mesh into charts (2) parametrize charts (3) resize chart polygons (4) simplify mesh (5) optimize parametrization (6) pack chart polygons (7) sample texture images
Approach: Details (1) partition original mesh into charts (2) parametrize charts (3) resize chart polygons (4) simplify mesh (5) optimize parametrization (6) pack chart polygons (7) sample texture images
Partition: chart merging l l Assign each face to its own region. Merge regions in greedy fashion based on n n l planarity compactness distance 2 to best-fitting plane perimeter length 2 Preserves mesh connectivity. [Maillot 93], [Eck 95], [Lee 98], [Garland 01]
Partition: boundary straightening l Improves parametrization (boundary will be straight in texture domain)
Approach: Details (1) partition original mesh into charts (2) parametrize charts (3) resize chart polygons (4) simplify mesh (5) optimize parametrization (6) pack chart polygons (7) sample texture images
Parametrization linear map 2 D texture domain surface in 3 D singular values: γ , Γ g G
Parametrization linear map T 2 D texture domain surface in 3 D singular values: γ , Γ l length-preserving (isometric) angle-preserving (conformal) area-preserving γ=Γ=1 γ=Γ γΓ=1
Stretch-minimizing parametrization linear map T 2 D texture domain surface in 3 D singular values: γ , Γ L∞(T) = Γ L 2(T) = √(γ 2 + Γ 2)/2 L∞(M) = max. T L∞(T) L 2(M) = √ T (L 2(T))2 A(T)
Stretch-minimization algorithm l l demo Start with uniform parametrization. Perform several optimization iterations: n for each vertex, try random line searches.
Parametrization example
Comparison Conformal parametrization (≈ MIPS, Floater) L 2 = 2. 28 L = 10. 07 L 2 stretch minimization L 2 = 1. 22 L = 2. 13
Comparison Uniform parametrization L 2 = 2. 60 L = 12. 52 L 2 stretch minimization L 2 = 1. 22 L = 2. 13
Comparison Area-preserving parametrization L 2 = 1. 57 L = 4. 19 L 2 stretch minimization L 2 = 1. 22 L = 2. 13
Example of stretch minimization demo ignoring stretch minimizing stretch
Approach: Details (1) partition original mesh into charts (2) parametrize charts (3) resize chart polygons (4) simplify mesh (5) optimize parametrization (6) pack chart polygons (7) sample texture images l l Half-edge collapses ordered by deviation Constrained simplification
Approach: Details (1) partition original mesh into charts (2) parametrize charts (3) resize chart polygons (4) simplify mesh (5) optimize parametrization (6) pack chart polygons (7) sample texture images
Parametrization optimization l Min ∑M in PM stretch(M) + deviation(M) l Improves deviation over entire range. l Improves stretch at coarser LOD’s (stretch was ignored during simplification).
Approach: Details (1) partition original mesh into charts (2) parametrize charts (3) resize chart polygons (4) simplify mesh (5) optimize parametrization (6) pack chart polygons (7) sample texture images
Pack chart polygons l l NP-Hard problem. We designed a heuristic.
Packing Heuristic l Calculate the minimum bounding rectangle. l Rotate chart to make rectangle vertical.
Chart placement l l Sort chart rectangles by height. Sequentially place left-to-right and right-to-left. ~[Igarashi 01]
Approach: Details (1) partition original mesh into charts (2) parametrize charts (3) resize chart polygons (4) simplify mesh (5) optimize parametrization (6) pack chart polygons (7) sample texture images mipmap artifacts!
Results (Measurements) l Scale charts to meet low-stretch requirement. l Stretch efficiency 3 D surface area / 2 D chart area l Packing efficiency 2 D chart area / texture domain area l Texture efficiency stretch efficiency * packing efficiency 3 D area / texture domain area / / /
Results Efficiencies on fine meshes: Models # faces in Mn bunny parasaur horse hand 69, 630 43, 866 96, 956 60, 856 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 # charts
Results across PM deviation stretch uniform min-stretch+optim demo
Demos demo
Summary l Automatic PM parametrization scheme. l Optimizes both deviation and stretch. l l Novel stretch metric prevents undersampling at all locations and in all directions. Robust parametrization algorithm.
Future work l Use hierarchical parametrization. l Constrain anisotropy. l Consider content of texture signal. l Address mip-mapping problems.