330 likes | 395 Views
Lapped Textures. Emil Praun and Adam Finkelstien (Princeton University) Huges Hoppe (Microsoft Research) SIGGRAPH 2000. Presented by Anteneh. Introduction. A method of creating a texture over an arbitrary surface mesh, using a sample 2D texture Basic approach:
E N D
Lapped Textures Emil Praun and Adam Finkelstien (Princeton University) Huges Hoppe (Microsoft Research) SIGGRAPH 2000 Presented by Anteneh
Introduction • A method of creating a texture over an arbitrary surface mesh, using a sample 2D texture • Basic approach: • Texture a surface with overlapping patches • Repeatedly past small regions of the sample surface on to parts of the mesh • Reduce the appearance of seams through alpha blending
mesh geometry ? textured surface “example” image Goal http://www.cs.princeton.edu/gfx/proj/lapped_tex/lapped_tex.ppt
Previous Work • Histogram matching of sample texture and noise image [Heeger and Bergen 96] • Shuffling images in a Laplacian pyramid representation [Debonet 97] • Random motion of image blocks [Xu et al 2000] • Noise functions [Perlin 85] • Parameterization and texture atlasing [Maillot et al 93]
texture patch surface Approach • Identify a set of broad features from the sample texture, repeatedly paste until the mesh is covered. http://www.cs.princeton.edu/gfx/proj/lapped_tex/lapped_tex.ppt
Procedure Cut texture patches from input texture Specify direction and scale fields over mesh Repeat Select random texture patch T Select random uncovered location L for paste Grow surface patch S around L to size of T Flatten S over T Record paste operation Update face coverages Untilthe mesh is covered
Process: creating texture patches • Highly structured texture: avoid cutting across important features. Patches manually outlined by users commercial tools. • Homogeneous or stochastic textures: use a predefined shape like a splotch or circle.
Procedure Cut texture patches from input texture Specify direction and scale fields over mesh Repeat Select random texture patch T Select random uncovered location L for paste Grow surface patch S around L to size of T Flatten S over T Record paste operation Update face coverages Untilthe mesh is covered
Direction and scale • User will assign each mesh face a tangential vector T within its plane. Procedure will interpolate remaining vectors from a few vector specifications • The direction of T will be the texture up direction, and the magnitude will be the local uniform scaling. • At each face convert T into a tangential basis (S, T) such that S = T x N
Direction and scale • User specified http://www.cs.princeton.edu/gfx/proj/lapped_tex/lapped_tex.ppt
Direction and scale • Local orientation: For isotropic textures, direction is not important. Procedure will perform local orientation. http://www.cs.princeton.edu/gfx/proj/lapped_tex/lapped_tex.ppt
Procedure Cut texture patches from input texture Specify direction and scale fields over mesh Repeat Select random texture patch T Select random uncovered location L for paste Grow surface patch S around L to size of T Flatten S over T Record paste operation Update face coverages Untilthe mesh is covered
Growing surface patch • Grow a surface patch where a texture patch can be pasted, starting with a triangle face. • As new faces are added to the patch, assign an initial guess for their parametrization. • Steps: 1) A random point is chosen to place a triangle face on an un-textured location. Map triangle to texture space so that it maps to texture patch center
Patch Growth http://www.cs.princeton.edu/gfx/proj/lapped_tex/lapped_tex.ppt
Growing surface patch • Steps: 2) Grow the surface patch around the first triangle. Constraints: • The surface patch is required to be homeomorphic to a disk. • Stop growing if the surface patch is not at least partially inside the texture patch • Avoid growing in areas of high curvature to stop texture distortion
Patch Growth http://www.cs.princeton.edu/gfx/proj/lapped_tex/lapped_tex.ppt
Patch Growth http://www.cs.princeton.edu/gfx/proj/lapped_tex/lapped_tex.ppt
Patch Growth http://www.cs.princeton.edu/gfx/proj/lapped_tex/lapped_tex.ppt
Patch Growth http://www.cs.princeton.edu/gfx/proj/lapped_tex/lapped_tex.ppt
Patch Growth http://www.cs.princeton.edu/gfx/proj/lapped_tex/lapped_tex.ppt
Patch Growth http://www.cs.princeton.edu/gfx/proj/lapped_tex/lapped_tex.ppt
Optimization of surface patch parameterization • Attempt to match the images from the surface tangent vectors (S, T) with texture coordinate axes (ˆs,ˆt), using a least squares method. • This optimization minimizes the differences between (ˆs,ˆt) and the parameterized form of (S, T) in texture coordinates. • This aligns the texture patch to the user specified direction field.
Procedure Cut texture patches from input texture Specify direction and scale fields over mesh Repeat Select random texture patch T Select random uncovered location L for paste Grow surface patch S around L to size of T Flatten S over T Record paste operation Update face coverages Untilthe mesh is covered
Texture Storage and rendering • Two methods • Texture Atlas: patches of triangles with similar normals. Faster rendering but requires more user effort. • Runtime pasting: Record the parameters for each paste operation, and then render these surface patches at runtime. May render triangles several times but has effective resolution.
Results: Splotches http://www.cs.princeton.edu/gfx/proj/lapped_tex/lapped_tex.ppt
Results: Anisotropic http://www.cs.princeton.edu/gfx/proj/lapped_tex/lapped_tex.ppt
Controlling Direction and Scale http://www.cs.princeton.edu/gfx/proj/lapped_tex/lapped_tex.ppt
Limitations direction field singularities low-frequency components boundary mismatches http://www.cs.princeton.edu/gfx/proj/lapped_tex/lapped_tex.ppt
Summary • Texture synthesis through overlapping patch pastes. • Minimal edge blending. • Use optimization to align texture patches with the direction field of the mesh. • User interaction (15 min) and preprocessing (upto 6 min).
Future Work • Fine-tuning patch placement: sharp texture features align across patch boundaries. • More automation: reduce user interaction. • Explore other texture types such as animated, volumetric and view-dependent textures.