1 / 53

Texture-Mapping Progressive Meshes

Learn how the progressive meshes texture mapping algorithm simplifies geometry with 600 to 69,000 faces, conveying details effectively. Follow the step-by-step approach to achieve high-quality texture mapping results.

mtackett
Télécharger la présentation

Texture-Mapping Progressive Meshes

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. SIGGRAPH 2001 Texture-MappingProgressive Meshes Pedro V. SanderSteven J. Gortler John SnyderHugues Hoppe Harvard University Microsoft Research

  2. SIGGRAPH 2001 Texture-MappingProgressive Meshes Pedro V. SanderSteven J. Gortler John SnyderHugues Hoppe Harvard University Microsoft Research

  3. 69,000faces 15,000faces 600faces progressive mesh

  4. 69,000faces 15,000faces 600faces progressive mesh 600faces simplified mesh + normal mapConveys detail of original geometry

  5. “Texture mapping” Authoring: map a texture image onto a surface

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

  7. 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

  8. 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

  9. 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

  10. Our approach: multi-face charts • Partition mesh into charts. • Simplify respecting chart topology. [Cohen 98] • Same texture still applicable.

  11. Chart constraint 1:Faces cannot span chart boundaries

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

  13. 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

  14. Parametrization quality metrics (1) Minimize texture deviation (stricter than geometric error) [Cohen et al 98] demo

  15. Parametrization quality metrics (2) Minimize texture stretch undersampling 2D texture high stretch  low stretch 

  16. Parametrization quality metrics (2) Minimize texture stretch blurring high stretch  low stretch 

  17. 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

  18. 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

  19. 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

  20. 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

  21. 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

  22. 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

  23. 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

  24. 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

  25. 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

  26. 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

  27. 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

  28. 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]

  29. Partition: boundary straightening • Improves parametrization(boundary will be straight in texture domain)

  30. 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

  31. linear map singular values: γ , Γ g G Parametrization 2D texture domain surface in 3D

  32. T linear map singular values: γ , Γ Parametrization • length-preserving (isometric) γ = Γ= 1 • angle-preserving (conformal) γ = Γ • area-preserving γΓ= 1 2D texture domain surface in 3D

  33. 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

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

  35. Parametrization example

  36. Comparison Conformal parametrization (≈ MIPS, Floater) L2 = 2.28 L = 10.07 L2 stretch minimization L2 = 1.22 L = 2.13

  37. Comparison Uniform parametrization L2 = 2.60 L = 12.52 L2 stretch minimization L2 = 1.22 L = 2.13

  38. Comparison Area-preserving parametrization L2 = 1.57 L = 4.19 L2 stretch minimization L2 = 1.22 L = 2.13

  39. Example of stretch minimization demo ignoring stretch minimizing stretch

  40. 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

  41. 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

  42. 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).

  43. 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

  44. Pack chart polygons • NP-Hard problem. • We designed a heuristic.

  45. Packing Heuristic • Calculate the minimum bounding rectangle. • Rotate chart to make rectangle vertical.

  46. Chart placement • Sort chart rectangles by height. • Sequentially place left-to-right and right-to-left. ~[Igarashi 01]

  47. 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!

  48. 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 / / /

  49. Results Efficiencies on fine meshes:

  50. uniform • min-stretch • min-stretch+optim Results across PM deviation stretch demo

More Related