SIGGRAPH 2001 TextureMapping Progressive Meshes Pedro V Sander

  • Slides: 53
Download presentation
SIGGRAPH 2001 Texture-Mapping Progressive Meshes Pedro V. Sander Steven J. Gortler Harvard University John

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

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 progressive mesh 600 faces

69, 000 faces 15, 000 faces 600 faces progressive mesh 600 faces simplified mesh

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

“Texture mapping” Authoring: map a texture image onto a surface Our problem: sample an

“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,

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,

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

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.

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 1: Faces cannot span chart boundaries

Chart constraint 2: Texture boundaries must be straight fine mesh coarse mesh texture map

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,

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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)

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

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: γ

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:

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

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

Stretch-minimization algorithm l l demo Start with uniform parametrization. Perform several optimization iterations: n for each vertex, try random line searches.

Parametrization example

Parametrization example

Comparison Conformal parametrization (≈ MIPS, Floater) L 2 = 2. 28 L = 10.

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

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

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

Example of stretch minimization demo ignoring stretch minimizing stretch

Approach: Details (1) partition original mesh into charts (2) parametrize charts (3) resize chart

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

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

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

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.

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

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.

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

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

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

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

Results across PM deviation stretch uniform min-stretch+optim demo

Demos demo

Demos demo

Summary l Automatic PM parametrization scheme. l Optimizes both deviation and stretch. l l

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

Future work l Use hierarchical parametrization. l Constrain anisotropy. l Consider content of texture signal. l Address mip-mapping problems.