S.F.B.M. General

From Ultrafractal Wiki

Jump to: navigation, search

S.F.B.M. General is a Coloring Algorithm in sam.ucl.


Contents

What is it?

This coloring performs a fBm algorithm at each iterations and sum the result. For explanations about fBm, see S.F.B.M. Pixel.

The Parameters

Formula power

To make the iteration bands disappear. Set here the power at which z is raised in the formula used (usually 2, as in the standard M-Set).

Formula bailout

Also to make the iteration bands disappear. Set here the bailout value used in the formula. Using a too big bailout (like 1E20) can cause problems sometimes. Usually, 1E15 will be sufficient to erase the iteration bands and small enough to avoid problems. Don't forget to make the formula bailout correspond.

First iteration to trap

The first iteration on which fBm will be applied. If you zoomed a bit, increasing this value won't change much the image and you'll gain computing time.

Last iteration to trap

The last iteration on which fBm will be applied.

Use...

What will be used to compute fBm.

  • current z : It will use the value z has in te formula at this iteration.
  • pixel value : It can seem a bit stupid to use the pixel value, ignoring the work done by the formula. But since the "weight" of the value got a each iteration can depend on the value of z (see below), this mode has some use.

Invert z?

Invert z before beginning computations if enabled.

Noise type

Determines how the random numbers will be chosen on the gird. With the raw mode, the random numbers are chosen once for all and are the same for each pixel in a given square.The Perlin mode use the more subtle Perlin noise function using random vectors and dot products. Usually, the Perlin mode will give you a more "round" and smooth noise.

String Mode

A fancy mode in which kind of strings appear. It can give some very nice textures.

String Power

A parameter only for the "String" mode. Keep it below one to see the strings. The closer to 0 it is, the less relief the texture will have.

Scale mode

Tells how the gird will be reduced at each iteration. It can be constant, be reduced by a factor i (the current iteration number) or (Magnification Step)^i (what is used in S.F.B.M. Pixel). There are two additionnal fancy modes...

Magnification step

See just above...

Scale distribution

At each iteration, the value assigned to the pixel is summed and this sum will be used to assign the final color to the pixel considered. However, if you assign to each iterations the same "weight" in the sum, the small noise dominates and the result is rather messy. So the idea is to give the large scale noises more weight than the small scale ones. That's what accomplish the scale distribution.

Constant

all the scales have the same weight.

  • 1/i : Divides each scale by the number of iterations
  • 1/log(i+1) : More or less the same thing as 1/i
  • 1/|z| : Divide by the squared modulus of z. Can give interesting results together with Use... ...pixel value (see above).

Distance Estimator

Raw is the "usual" distance estimator, but sin gives more "round" and smooth results.

Perturb?

Use a strange grid to produce a discontinuous noise.

Power

This parameter is used when computing the distance of the pixel to the four square corners. The standard distance is raised to this power. The nicest fbm is obtained with 2, but there are other really interesting values...

Pattern size

(...)

Pattern rotation

(...)

Rotation step

Define how the grid will be rotated between each iteration. If you want to get a standard fBm noise, don't put a divisor of 360 (the whole angle) in this field, else... just try.

Seed

The seed to feed the random generator. Don't use a too small seed.

Random generator

  • "Division" use a division to get a random number.
  • "Selected Function" use the function you set in "Selected function" to generate *"random" numbers. These numbers are really not random, and you should see a pattern typical from the used function appear (set Rotation Step to zero). It can give some interesting effects...

I've added two modes: "Division II" and "Selected Function II". These modes are the same as the two ones above, except they use round() instead of floor(). They give better results IMHO.

Vary random numbers?

Enables you to put a perturbation parameter that will change at each iteration in the random algorithm.


Example

Image:Fbm2.jpg

Copyright 2000 Samuel Monnier


fbm2 {
; Copyrights 2000 S. Monnier
; http://www.crosswinds.net/~s31415/index/index.htm
fractal:
  title="fbm2" width=600 height=600 author="Samuel" created="May 13, 2000"
  numlayers=3
layer:
  caption="New Layer 2" opacity=100 visible=yes alpha=no mergemode=overlay
mapping:
  center=-0.02/0.0266666666666666667 magn=1.22950819672131148
  angle=324.192251520500568
formula:
  filename="Standard.ufm" entry="Julia" maxiter=100 percheck=normal
  p_seed=0.306666666666666667/-0.00666666666666666667 p_power=2/0
  p_bailout=1E18
inside:
  transfer=none repeat=yes
outside:
  filename="sam.ucl" entry="SFBMgen" transfer=arctan repeat=yes p_fpower=2
  p_fbail=1E18 p_niterinf=1 p_nitersup=50 p_use="...current z" p_invert=yes
  p_mode="Raw... (Sam's)" p_scalemode="(Magn.Step)^i" p_magn=1.7
  p_scaledis="1/log(i+1)" p_power=0.1 p_size=1 p_patrot=0 p_rot=0
  p_seed=123094 p_randmode="Selected Function" p_mod="Use sqrt(i)"
  f_f1=recip
gradient:
  smooth=yes numnodes=3 index=3 color=4525068 index=154 color=14862536
  index=306 color=1654445
layer:
  caption="New Layer 4" opacity=100 visible=yes alpha=no
  mergemode=hardlight
mapping:
  center=-0.02/0.0266666666666666667 magn=1.22950819672131148
  angle=324.192251520500568
formula:
  filename="Standard.ufm" entry="Julia" maxiter=1000 percheck=normal
  p_seed=0.306666666666666667/-0.00666666666666666667 p_power=2/0
  p_bailout=1E18
inside:
  transfer=none repeat=yes
outside:
  filename="sam.ucl" entry="SFBMgen" transfer=linear repeat=yes p_fpower=2
  p_fbail=1E18 p_niterinf=1 p_nitersup=100 p_use="...current z"
  p_invert=yes p_mode="Raw... (Sam's)" p_scalemode="(Magn.Step)^i"
  p_magn=1.7 p_scaledis="1/log(i+1)" p_power=2 p_size=1 p_patrot=0 p_rot=0
  p_seed=123094 p_randmode="Selected Function" p_mod="Use sqrt(i)"
  f_f1=recip
gradient:
  smooth=no numnodes=2 index=110 color=4680305 index=233 color=9152443
layer:
  caption="New Layer 1" opacity=100 visible=yes alpha=no
mapping:
  center=-0.02/0.0266666666666666667 magn=1.22950819672131148
  angle=324.192251520500568
formula:
  filename="Standard.ufm" entry="Julia" maxiter=100 percheck=normal
  p_seed=0.306666666666666667/-0.00666666666666666667 p_power=2/0
  p_bailout=1E18
inside:
  transfer=none repeat=yes
outside:
  filename="sam.ucl" entry="SFBMgen" transfer=arctan repeat=yes p_fpower=2
  p_fbail=1E18 p_niterinf=1 p_nitersup=50 p_use="...current z" p_invert=yes
  p_mode="Raw... (Sam's)" p_scalemode="constant" p_magn=1.5
  p_scaledis="1/i" p_power=0.1 p_size=1 p_patrot=0 p_rot=0 p_seed=123094
  p_randmode="Selected Function" p_mod="Use sqrt(i)" f_f1=recip
gradient:
  smooth=no numnodes=2 index=0 color=460551 index=273 color=16777215
}
Personal tools