|========================================================================|
| fourier-compose v1.2 (2006-01-03)  GIMP FFT texture synthesis plug-in  |
| Copyright (C) 2005 Yeti (David Necas) <yeti@physics.muni.cz>           |
|========================================================================|

Fourier Compose generates tilable textures by the means of Fourier (spectral)
synthesis.  In other words, it generates a random two-dimensional FFT modulus
(amplitudes) and random phases, shapes the modulus by filtering it with
specified filters, and performs backwards FFT.  The resulting values are then
visualized.


Installation
------------

Requirements: Gimp 2.2, FFTW 3 (see http://fftw.org/).

Untar the tar file (well I guess you've got that far already), then in the
directory thus created type

      make install

to install the plug-in to the system-wide plug-in directory, or

      make install-user

to install it to your user plug-in directory.  You can uninstall it later by
`make uninstall' or `make uninstall-user', respectively. When something goes
wrong, try modify the Makefile or, if you are really desperate, the source.


Usage
-----

This plug-in installs itself in the Filters/Render menu as `Fourier Compose'.

Note while FFTW can handle transforms of arbitrary sizes in O(n*log(n)) time,
transforms of nice sizes are considerably faster.  Nice is usually something
like 2^k 3^l 5^m 7^n (and 11 or 13 multiple of these).

Parameter description:

* Minimum frequency

  The minimum frequency of simple high-pass filter.  The value is relative,
  0.5 corresponds to Nyquist frequency (the same applies to all other
  frequency parameters).

  The use of frequency units relative to maximum frequency has one
  interesting, but perhaps a bit confusing consequence: The same [relative]
  frequency values lead to the same *absolute* feature size on resulting
  images, not relative.  In other words, a choice of parameters that makes
  characteristic feature size 40 pixels on image of one size, will make
  characteristic feature 40 pixels on images of all sizes.  The only thing
  that will change with changing image size is the number of periods that
  will fit in.

* Maximum frequency

  The maximum frequency of simple low-pass filter.

* Enable Gaussian ring multiplier

  Gaussian ring multiplier is a frequency filter of form

    exp(-(f - f0)^2/(2 sigma^2))

  where f denotes the length of frequency vector.

* Offset

  The value of f0 in Gaussian multiplier.

* Sigma

  The value of sigma in Gaussian multiplier.

* Enable power multiplier

  Power multiplier is a frequency filter of form

    1/f^p

  where f denotes the length of frequency vector.

* Inverse power

  The value of p in power multiplier.

* Enable directional multiplier

  Directional multiplier is a frequency filter of form

    ((cos(n(phi - phi0)) + 1)/2)^s

  where phi denotes the direction of frequency vector.

* Number of directions

  The value of n in directional multiplier (an integer).

* Strength

  The value of s in directional multiplier.  The actual strength of the
  effect on the texture depends on n.  For example, for 4 the effect is quite
  strong, while for an odd number it is weaker.

* Rotation

  The value of phi0 in directional multiplier (in degrees).

Authors
-------

Yeti (David Necas).

Report bugs to <yeti@physics.muni.cz> (please include `fourier-compose' in
subject).

Web: http://trific.ath.cx/software/gimp-plugins/fourier-compose/


Copying
-------

Fourier Compose can be copied and/or modified under the terms of GNU General
Public License.  Please see COPYING for details.
