S.F.B.M. General
From Ultrafractal Wiki
S.F.B.M. General is a Coloring Algorithm in sam.ucl.
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
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
}

