Lapped textures

Lapped textures
Emil Praun, Adam Finkelstein, Hugues Hoppe.
ACM SIGGRAPH 2000 Proceedings, 465-470.
Texture synthesis over arbitrary surfaces.
Abstract: We present a method for creating texture over an arbitrary surface mesh using an example 2D texture. The approach is to identify interesting regions (texture patches) in the 2D example, and to repeatedly paste them onto the surface until it is completely covered. We call such a collection of overlapping patches a lapped texture. It is rendered using compositing operations, either into a traditional global texture map during a preprocess, or directly with the surface at runtime. The runtime compositing approach avoids resampling artifacts and drastically reduces texture memory requirements.
Through a simple interface, the user specifies a tangential vector field over the surface, providing local control over the texture scale, and for anisotropic textures, the orientation. To paste a texture patch onto the surface, a surface patch is grown and parametrized over texture space. Specifically, we optimize the parametrization of each surface patch such that the tangential vector field aligns everywhere with the standard frame of the texture patch. We show that this optimization is solved efficiently as a sparse linear system.
Hindsights: As seen in the accompanying video, we originally entitled this submission “Synthesizing surface texture by example”. Perhaps we should have stuck to that title, because surface texture synthesis became a hot topic the following year.

For isotropic textures, the Least squares conformal map is a nice alternative for local parametrization. In our setting, it corresponds to minimizing ||ϕ(S) - rot90(ϕ(T))||2 instead of our functional ||ϕ(S) - s^||2 + ||ϕ(T) - t^||2. (Both minimizations are linear problems.)

Several papers have improved our technique by adjusting the locations and extents of the patches to make their boundaries less perceptible.