I guess that these surfaces are mainly intended for use as pigment functions
or for modifying other surfaces as you might use a height field.


This is the "hex_x" function.
The parameters are:
 No effect (but the old syntax required at least one parameter)
function { f_hex_x(x,y,z,0)}


This is the "hex_y" function.
The parameters are:
 No effect (but the old syntax required at least one parameter)
function {  f_hex_x(x,y,z,0)}


This is the "ridge" function.
The three images show  the function used alone as a surface
 the function used as a height field on a sphere
 the function used as a pigment on a sphere
The parameters are:
 Lambda
 Octaves
 Omega
 Offset
 Ridge
 Noise Type
The effects of these parameters are fairly subtle.
function { f_ridge(x,y,z,1,3,1,0.2,0,0)}


This is the Ridged Multifractal surface
The three images show  the function used alone as a surface
 the function used as a height field on a sphere
 the function used as a pigment on a sphere
The parameters are:
 H
 Lacunarity
 Octaves
 Offset
 Gain
 Noise Type
The effects of these parameters are fairly subtle, and are comprehensively described in
the help file.
function {  f_ridged_mf(x,y,z,2,3,1,0.1,1,2)}


This is the Hetero Multifractal surface
The three images show  the function used alone as a surface
 the function used as a height field on a sphere
 the function used as a pigment on a sphere
The parameters are:
 H
 Lacunarity
 Octaves
 Offset
 Heterogeneity
 Noise Type
The effects of these parameters are fairly subtle, and are comprehensively described in
the help file.
#declare F = function {f_hetero_mf(x,y,z,2,3,1,0.1,1,0)}

