530 likes | 568 Views
SIGGRAPH 2001. Texture-Mapping Progressive Meshes. Pedro V. Sander Steven J. Gortler. John Snyder Hugues Hoppe. Harvard University. Microsoft Research. SIGGRAPH 2001. Texture-Mapping Progressive Meshes. Pedro V. Sander Steven J. Gortler. John Snyder Hugues Hoppe. Harvard University.
E N D
SIGGRAPH 2001 Texture-MappingProgressive Meshes Pedro V. SanderSteven J. Gortler John SnyderHugues Hoppe Harvard University Microsoft Research
SIGGRAPH 2001 Texture-MappingProgressive Meshes Pedro V. SanderSteven J. Gortler John SnyderHugues Hoppe Harvard University Microsoft Research
69,000faces 15,000faces 600faces progressive mesh
69,000faces 15,000faces 600faces progressive mesh 600faces simplified mesh + normal mapConveys detail of original geometry
“Texture mapping” Authoring: map a texture image onto a surface
Our problem: sample an existing surface signal “Texture mapping” Authoring: map a texture image onto a surface
Our problem Sample the surface signal into a texture:(e.g. normal, displacement, BRDF, …) Goals: • single texture for entire PM sequence • quality metrics • 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: • single texture for entire PM sequence • quality metrics • minimize appearance changes over PM • efficiently distribute the texture samples
Simple approach: chart-per-face [Soucy 96, Cignoni 98, Sander 00] • Define texture for single-LOD mesh. • Cannot use texture for any simpler mesh! 500 faces atlas of 500 triangles
Our approach: multi-face charts • Partition mesh into charts. • Simplify respecting chart topology. [Cohen 98] • Same texture still applicable.
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: • single texture for entire PM sequence • quality metrics • minimize appearance changes over PM • efficiently distribute the texture samples
Parametrization quality metrics (1) Minimize texture deviation (stricter than geometric error) [Cohen et al 98] demo
Parametrization quality metrics (2) Minimize texture stretch undersampling 2D texture high stretch low stretch
Parametrization quality metrics (2) Minimize texture stretch blurring high stretch low stretch
470 faces 700 faces 10,000 faces 1,200 faces Contributions: Texture mapping PM’s • Chartification algorithm (considers simplification quality) • Texture stretch metric (penalizes undersampling) • Parametrization algorithm (minimizes stretch) • 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 • Assign each face to its own region. • Merge regions in greedy fashion based on • planarity distance2 to best-fitting plane • compactness perimeter length2 • Preserves mesh connectivity. [Maillot 93], [Eck 95], [Lee 98], [Garland 01]
Partition: boundary straightening • 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
linear map singular values: γ , Γ g G Parametrization 2D texture domain surface in 3D
T linear map singular values: γ , Γ Parametrization • length-preserving (isometric) γ = Γ= 1 • angle-preserving (conformal) γ = Γ • area-preserving γΓ= 1 2D texture domain surface in 3D
T linear map singular values: γ , Γ L∞(M) = maxT L∞(T) L2(M) = √ T (L2(T))2 A(T) Stretch-minimizing parametrization 2D texture domain surface in 3D L∞(T) = Γ L2(T) = √(γ2 + Γ2)/2
demo Stretch-minimization algorithm • Start with uniform parametrization. • Perform several optimization iterations: • for each vertex, try random line searches.
Comparison Conformal parametrization (≈ MIPS, Floater) L2 = 2.28 L = 10.07 L2 stretch minimization L2 = 1.22 L = 2.13
Comparison Uniform parametrization L2 = 2.60 L = 12.52 L2 stretch minimization L2 = 1.22 L = 2.13
Comparison Area-preserving parametrization L2 = 1.57 L = 4.19 L2 stretch minimization L2 = 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 • 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 • Min ∑M in PM stretch(M) + deviation(M) • Improves deviation over entire range. • 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 • NP-Hard problem. • We designed a heuristic.
Packing Heuristic • Calculate the minimum bounding rectangle. • Rotate chart to make rectangle vertical.
Chart placement • 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) • Scale charts to meet low-stretch requirement. • Stretch efficiency3D surface area / 2D chart area • Packing efficiency2D chart area / texture domain area • Texture efficiencystretch efficiency * packing efficiency3D area / texture domain area / / /
Results Efficiencies on fine meshes:
uniform • min-stretch • min-stretch+optim Results across PM deviation stretch demo