Lapped Textures Emil Praun and Adam Finkelstien Princeton

  • Slides: 33
Download presentation
Lapped Textures Emil Praun and Adam Finkelstien (Princeton University) Huges Hoppe (Microsoft Research) SIGGRAPH

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

Introduction A method of creating a texture over an arbitrary surface mesh, using a sample 2 D texture n Basic approach: n Texture a surface with overlapping patches n Repeatedly past small regions of the sample surface on to parts of the mesh n Reduce the appearance of seams through alpha blending n

Goal mesh geometry ? textured surface “example” image http: //www. cs. princeton. edu/gfx/proj/lapped_tex. ppt

Goal mesh geometry ? textured surface “example” image http: //www. cs. princeton. edu/gfx/proj/lapped_tex. ppt

Previous Work Histogram matching of sample texture and noise image [Heeger and Bergen 96]

Previous Work Histogram matching of sample texture and noise image [Heeger and Bergen 96] n Shuffling images in a Laplacian pyramid representation [Debonet 97] n Random motion of image blocks [Xu et al 2000] n Noise functions [Perlin 85] n Parameterization and texture atlasing [Maillot et al 93] n

Approach n Identify a set of broad features from the sample texture, repeatedly paste

Approach n Identify a set of broad features from the sample texture, repeatedly paste until the mesh is covered. texture patch surface http: //www. cs. princeton. edu/gfx/proj/lapped_tex. ppt

Procedure Cut texture patches from input texture Specify direction and scale fields over mesh

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 Until the mesh is covered

Process: creating texture patches n Highly structured texture: avoid cutting across important features. Patches

Process: creating texture patches n Highly structured texture: avoid cutting across important features. Patches manually outlined by users commercial tools. n 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

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 Until the mesh is covered

Direction and scale User will assign each mesh face a tangential vector T within

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 n The direction of T will be the texture up direction, and the magnitude will be the local uniform scaling. n At each face convert T into a tangential basis (S, T) such that S = T x N n

Direction and scale n User specified http: //www. cs. princeton. edu/gfx/proj/lapped_tex. ppt

Direction and scale n User specified http: //www. cs. princeton. edu/gfx/proj/lapped_tex. ppt

Direction and scale n Local orientation: For isotropic textures, direction is not important. Procedure

Direction and scale n Local orientation: For isotropic textures, direction is not important. Procedure will perform local orientation. http: //www. cs. princeton. edu/gfx/proj/lapped_tex. ppt

Procedure Cut texture patches from input texture Specify direction and scale fields over mesh

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 Until the mesh is covered

Growing surface patch Grow a surface patch where a texture patch can be pasted,

Growing surface patch Grow a surface patch where a texture patch can be pasted, starting with a triangle face. n As new faces are added to the patch, assign an initial guess for their parametrization. n 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 n

Patch Growth http: //www. cs. princeton. edu/gfx/proj/lapped_tex. ppt

Patch Growth http: //www. cs. princeton. edu/gfx/proj/lapped_tex. ppt

Growing surface patch Steps: 2) Grow the surface patch around the first triangle. Constraints:

Growing surface patch Steps: 2) Grow the surface patch around the first triangle. Constraints: n n 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. ppt

Patch Growth http: //www. cs. princeton. edu/gfx/proj/lapped_tex. ppt

Patch Growth http: //www. cs. princeton. edu/gfx/proj/lapped_tex. ppt

Patch Growth http: //www. cs. princeton. edu/gfx/proj/lapped_tex. ppt

Patch Growth http: //www. cs. princeton. edu/gfx/proj/lapped_tex. ppt

Patch Growth http: //www. cs. princeton. edu/gfx/proj/lapped_tex. ppt

Patch Growth http: //www. cs. princeton. edu/gfx/proj/lapped_tex. ppt

Patch Growth http: //www. cs. princeton. edu/gfx/proj/lapped_tex. ppt

Patch Growth http: //www. cs. princeton. edu/gfx/proj/lapped_tex. ppt

Patch Growth http: //www. cs. princeton. edu/gfx/proj/lapped_tex. ppt

Patch Growth http: //www. cs. princeton. edu/gfx/proj/lapped_tex. ppt

Patch Growth http: //www. cs. princeton. edu/gfx/proj/lapped_tex. ppt

Optimization of surface patch parameterization Attempt to match the images from the surface tangent

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. n This optimization minimizes the differences between (ˆs ( , ˆt) and the parameterized form of (S, T) in texture coordinates. n This aligns the texture patch to the user specified direction field. n

Optimization

Optimization

Procedure Cut texture patches from input texture Specify direction and scale fields over mesh

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 Until the mesh is covered

Texture Storage and rendering n 1) 2) Two methods Texture Atlas: patches of triangles

Texture Storage and rendering n 1) 2) 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. ppt

Results: Splotches http: //www. cs. princeton. edu/gfx/proj/lapped_tex. ppt

Results: Anisotropic http: //www. cs. princeton. edu/gfx/proj/lapped_tex. ppt

Results: Anisotropic http: //www. cs. princeton. edu/gfx/proj/lapped_tex. ppt

Controlling Direction and Scale http: //www. cs. princeton. edu/gfx/proj/lapped_tex. ppt

Controlling Direction and Scale http: //www. cs. princeton. edu/gfx/proj/lapped_tex. ppt

Limitations low-frequency components boundary mismatches http: //www. cs. princeton. edu/gfx/proj/lapped_tex. ppt direction field singularities

Limitations low-frequency components boundary mismatches http: //www. cs. princeton. edu/gfx/proj/lapped_tex. ppt direction field singularities

Summary Texture synthesis through overlapping patch pastes. n Minimal edge blending. n Use optimization

Summary Texture synthesis through overlapping patch pastes. n Minimal edge blending. n Use optimization to align texture patches with the direction field of the mesh. n User interaction (15 min) and preprocessing (upto 6 min). n

Future Work Fine-tuning patch placement: sharp texture features align across patch boundaries. n More

Future Work Fine-tuning patch placement: sharp texture features align across patch boundaries. n More automation: reduce user interaction. n Explore other texture types such as animated, volumetric and view-dependent textures. n

Optimization

Optimization