@Override
    public float value(final float x, final float y, final float z) {
        float total = 0;

        for (float f = this.frequency, a = this.amplitude; f < this.maxFreq; f *= this.lacunarity, a *= this.roughness) {
            total += this.basis.value(this.scale * x * f, this.scale * y * f, this.scale * z * f) * a;
        }

        return ShaderUtils.clamp(total, -1, 1);
    }
FractalSum is the simplest form of fractal functions summing up a few octaves
of the noise value with an ever decreasing roughness (0 to 1) amplitude

lacunarity = 2.0f is the classical octave distance

Note: though noise basis functions are generally designed to return value
between -1..1, there sum can easily be made to extend out of this range. To
handle this is up to the user.

@author Anthyon
jme3-terrain/src/main/java/com/jme3/terrain/noise/fractal/FractalSum.java