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