1 / 62

Lapped Textures

Lapped Textures. Princeton University Princeton University Microsoft Research. Emil Praun Adam Finkelstein Hugues Hoppe. Goal. mesh geometry. ?. textured surface. “ example ” image. Goal. Little user effort No apparent seams No obvious periodicity Low distortion

Download Presentation

Lapped Textures

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. Lapped Textures Princeton University Princeton University Microsoft Research Emil Praun Adam Finkelstein Hugues Hoppe

  2. Goal mesh geometry ? textured surface “example” image

  3. Goal • Little user effort • No apparent seams • No obvious periodicity • Low distortion • Local texture control • Anisotropy

  4. Previous 2D Texture Synthesis Histogram equalization [Heeger ’96] Laplacian block shuffling [de Bonet ’97] Pixel template matching [Efros ’99] [Wei ’00]

  5. Previous 2D Texture Synthesis Histogram equalization [Heeger ’96] Laplacian block shuffling [de Bonet ’97] Pixel template matching [Efros ’99] [Wei ’00] Random pasting of image blocks [Xu ’00]

  6. Previous 3D Texturing • Volumetric textures: • Noise functions [Perlin ’85, Worley ’96] • Solid textures by example [Ghazanfarpour ’96] • Synthesizing texture on a surface: • Reaction-diffusion [Turk ’91, Witkin ’91] • Cellular textures [Fleischer ’95] • Covering surface with triangular tiles [Neyret ’99]

  7. Approach texture patch surface

  8. Key Idea: Patch Pasting texture patch “lapped textures” surface

  9. Anisotropic vs. Isotropic images

  10. PROCESS

  11. Algorithm • Cut texture patches from input texture • [Specify texture direction & scale on mesh] • REPEAT • Pick texture patch T, mesh point P • Grow surface patch S around P to size(T) • Flatten S over T; paste T on mesh • Update mesh coverage info • UNTIL mesh is covered

  12. Algorithm texture patch surface

  13. Algorithm texture patch surface

  14. Algorithm texture patch surface

  15. Algorithm texture patch surface

  16. Issues • Texture patch creation • Specifying direction field • Surface patch growth • Patch parametrization • Face coverage estimation • Texture storage and rendering

  17. Issues • Texture patch creation • Specifying direction field • Surface patch growth • Patch parametrization • Face coverage estimation • Texture storage and rendering

  18. Texture Patch Creation

  19. Less Structure  Splotch

  20. Issues • Texture patch creation • Specifying direction field • Surface patch growth • Patch parametrization • Face coverage estimation • Texture storage and rendering

  21. Direction Field: User-specified

  22. Direction Field: User-specified • Angle - Only for anisotropic patches. • Can be set for only small number of faces – Gaussian radial basis function is used for interpolation. • Since the normal lies within the plane of the face we get an orthogonal basis : • S = T x N. (N – normal to the plane).

  23. Direction Field:Local to Patch

  24. Issues • Texture patch creation • Specifying direction field • Surface patch growth • Patch parametrization • Face coverage estimation • Texture storage and rendering

  25. Patch Growth • 1. Choose a random point on a non fully covered triangle. • 2. Add triangles in a BFS order to cover the texture patch. • 3. Stop when the patch is fully coverd. • Condintions: • The surface patch homeomorphic to a disk. • The distortion should not exceed a given limit. • We add edge only if it is within the texture patch.

  26. Patch Growth

  27. Patch Growth

  28. Patch Growth

  29. Patch Growth

  30. Patch Growth

  31. Patch Growth

  32. Patch Growth

  33. Patch Growth

  34. Polygonal Hulls • Start w/ boundary pixels, edges between neighbors • Conservatively simplify polygons

  35. Issues • Texture patch creation • Specifying direction field • Surface patch growth • Patch parametrization • Face coverage estimation • Texture storage and rendering

  36. Align Patch to Direction Field texture patch surface

  37. Tangential Vector Field

  38. Optimizing the Parametrization Least squares best match to unit axes Sparse linear system. No explicit fairness functional

  39. ^ (T) t ^ s (S) Optimizing the Parametrization  (A) A (B) T S B C (C) face in 3D 2D texture space

  40. Optimizing the Parametrization • For each mesh face f ={A,B,C} the vector T lies within the face plain. • Barycentric coordinates: • T = A + B + C and  +  +  = 0.

  41. ^ (T) t ^ s (S) Optimizing the Parametrization  (A) A (B) T S B C (C) face in 3D 2D texture space ^ dT = (A) + (B) + (C) - t We wish to minimize :

  42. Result of Optimization

  43. Issues • Texture patch creation • Specifying direction field • Surface patch growth • Patch parametrization • Face coverage estimation • Texture storage and rendering

  44. Coverage estimation Render patch triangles Flag covered triangles Remember 1 pixel per uncovered triangle • off-screen buffer

  45. Coverage estimation Render patch triangles Flag covered triangles Remember 1 pixel per uncovered triangle • off-screen buffer

  46. Coverage estimation Render patch triangles Flag covered triangles Remember 1 pixel per uncovered triangle • off-screen buffer

  47. Issues • Texture patch creation • Specifying direction field • Surface patch growth • Patch parametrization • Face coverage estimation • Texture storage and rendering

  48. Texture Storage and Rendering • Method 1: Texture Atlas • Pre-composite into a global texture map. • -- OR -- • Method 2: Runtime pasting • Composite at run-time using hardware

  49. Texture Atlas • Texture Atlas is a set of charts {1,…, k}. • Each chart j is a mapping from a subset U j of the mesh to the Euclidean plane (the texture plane). • {U1,…, Uk} is a cover of the surface. • If i  j then j and i don’t overlap except on the edges.

  50. Texture Atlas • Patches of triangles with similar normals • 2D packing problem for arbitrary polygons

More Related