Texture Synthesis is a means of synthesis, for use in Computer Graphics, of the surface properties of objects that we may design in 3-dimensional space. As you know, in the real world all objects have a surface texture, a color or range of colors, a roughness or feel, and a reflectivity or transparency. These are the properties that we use Texture Synthesis to create. Texture Synthesis is a way of cheating at creating textures.
Texture Synthesis is a method by which we can mathematically synthesise the effects of texture on a surface, without having to actually declare a 3-D representation of the texture. For example, if we wanted a bumpy or wavy surface it is much less computationally expensive to manipulate the normal of a surface to give the illusion of bumpiness by shading effects, than to actually create a 3-D distorted surface that is bumpy. If you look at the edges of a bumpy surface that has been obtained by Texture Synthesis, you will see the edges are straight and flat. The surface is not actually perturbed, just the shading model is changed.
Texture Synthesis is the process of computing a value of
some shading parameter (p) for specified points on a surface
patch. A patch is some mathematically defined entity such as a
planar polygon or quadric surface. The point in 3-D must first
be transformed into the domain of the mathematical function being
used, which is usually the unit square.
eg (u,v) = N(X,Y,Z)
p = p(u,v)
(Peachey 1985).
The shading parameter can be used to express colour or surface variation. For example in Terrain Synthesis the shading value would represent the height value at that point.
We use Texture Synthesis in all of our computer modelling software. Texture synthesis is used to create a realistic look for each object. For example, in an architectural office we may wish to show prospective clients what their house will look like before it is ever built. We could design a "walkthrough" of their house with all the walls assembled, and all color schemes incorporated. Texture Synthesis is used to implement these color schemes. On the outside of the house we might include a grass texture for the lawn, a brick texture for the walls, a wood texture for the door, etc.
This is just one example of the use of Texture Synthesis. It is also commonly used to create realistic pictures for use in promotional advertisements and presentations. All of the advertisements that use computer graphics use Texture Synthesis in some way or other. Wherever it is desired to create a shiny surface, a rough surface, a colored surface, any surface at all, that is where Texture Synthesis is used.
The question is commonly asked, "Why cheat at Texture Synthesis? Why not actually make the object bumpy, rough, etc ?"
The answer is calculation time and computer load.
Actually creating a bumpy surface would be extremely computationally intensive. The maths required to actually distort the surface would be prohibitive to a fast render, and would take too long. We can get the same effect by fooling our eyes into thinking that the surface is bumpy by altering the way that shading is performed. This is a less computationally expensive method of shading, and gives a result that is almost indistinguishable from a truly textured surface. (In this case a bumpy surface).
Texture Synthesis works by manipulating the normal of each facet on a surface. The normal of a facet controls how a facet reacts to light sources, and the colors that a facet contains. By manipulating the normal in a mathematically continuous way, we can obtain a very realistic effect.
Textures consist of three main sections.
This is the first of three components usually found in a texture description.
A color map is a map or routine that describes how the color of a texture changes across a finite distance. For example a wood texture has distinct bands, and they are of a definite shape. The color map describes the realative amounts of color, and the distribution of color in a texture.
A color map may also consist of an image. It is common to map a pre-created image onto an object to give it more realism. For example, if we wanted to create a picture of a can of Coke, we would probably use an image of the Coca-Cola logo and map it around the cylinder of the can, rather than try and define a color map that varied in the same way. This type of color/image mapping is very common in computer graphics, and can result in greatly reduced tracing times.
This is the second component of three usually found in a texture description.
Bump maps are used to model the surface roughness of the texture. It is commonly useful to create a rough or bumpy surface to obtain certain effects. For example, to create a water-scape, we might create a flat plane and map a bump-map onto its surface to create the effect of waves. It is possible to create these waves in a continuous manner, so that smooth animation may be achieved, and maybe even the effect of the waves flowing!
The last of three components usually found in a texture description.
One of the major uses of texture synthesis is to synthesize surface properties of objects. These effects include reflection , transparency and even refraction (bending of light). A texture description usually contains some facility to change these properties of surfaces. It is useful to have surfaces that can be used as mirrors or glass. Also, to add realism it is useful to be able to specify a refractive index, or angle of refraction for transparent and translucent objects. Texture Synthesis provides a quick and easy way to specify and emulate these effects.
Digitising photographed images to produce a texture map is a popular method of Texture Mapping. However this approach is expensive in terms of storage space, in particular when simulating natural scenes because of the wide variety of patterns necessary. Texture synthesis allows for shading values to be calculated using only a relatively small database of information, during the image rendering stage. Texture values can also be pre-calculated and stored in a tabulated texture map similar to a digitized texture pattern if desired. The synthesis approach also has the advantage of allowing for perspective manipulation and antialiasing as well as complex motion such as flowing rivers and blowing trees. (Gardner, 1984)
Peachey (1985) noted that "The advantage of digitized textures is their potential for realism. Digitized textures are quite popular in two-dimensional texturing, because it is relatively easy to digitize a photograph." However he also noted that synthetic textures are more flexible and can be formulated to satisfy certain constraints. For example periodic synthesis techniques (creating tilable textures) can be used to smoothly fill aninfinite texture space.
As well as simulating surface detail by altering the shading intensities, texturing functions can be used to simulate boundary irregularities. Gardner used this technique to produce realistic images of clouds (Gardner 1984). This was achieved by defining a threshold value for the texture function (intensity) and defining the object as translucent wherever the texture function falls below the threshold. This technique is very useful since natural objects often do not have well defined boundaries, or have very complex boundaries.
The texture function is usually tailored to suit the particular image, but many functions use the principles of Fourier expansion (Lewis, 1984). Gardner (1984) developed a function in this fashion after examining several types of waveforms
Synthetic textures can be used in two-dimensional surface modelling or three-dimensional solid object modelling. In two dimensional modelling the effect is of draping the texture map over the surface being modelled. An example could be draping a map of the earth over a sphere to create an imperfect image of the earth from space. Points on the sphere are transformed into points on the map to find the intensity (colour) value at that point on the map. That intensity value is used for the original point on the sphere. This is a lookup method using a texture map which would have been digitized, however the approach is exactly the same for a texture map which has been synthesized. If the synthesis occurs during rendering rather than previously, the mathematical function is used to determine the intensity value rather than looking up a pre-computed value for the transformed point.
Hence a trade-off occurs between execution time and storage space. It is quicker to look up a table of pre-computed values but this uses storage space. This is an especially important consideration when using solid object modelling. Storing values for every (x,y,z) triple at a given resolution is very expensive in terms of storage space. For this reason texture synthesis performed during rendering is the preferred method.
Texture Synthesis is an effective method of producing realistic looking images at reasonable computational cost. It is basically a mathematical simulation of real-world texture patterns. Synthesis is generally less accurate at modelling real-world textures than digitizing photographs of the image but offers many advantages, particularly in terms of flexibility. Effective synthesis requires a well constructed texturing formula, which is used to find the value of the shading parameter for a particular point on the object. Synthesis is a more practical method than digitising for 3-D solid object texturing because of the much lower storage requirements and difficulty in digitizing solid objects.