public double Get(double x, double y, double z) { double value = 1.0; x *= _frequency; y *= _frequency; z *= _frequency; for (int i = 0; i < _numOctaves; ++i) { value *= _source.Get(x, y, z) * _exparray[i] + 1.0; x *= _lacunarity; y *= _lacunarity; z *= _lacunarity; } if (_withValueRemap) { FractalRemap remap = _fractalRemap[_numOctaves - 1]; if (base._defaultRange == enuBaseNoiseRange.MinOneToOne) { return(value * remap.Scale + remap.Bias); } else { return(((value * remap.Scale + remap.Bias) + 1.0) / 2.0); } } else { return(value); } }
public double Get(double x, double y) { double value = 0.0, signal; x *= _frequency; y *= _frequency; for (int i = 0; i < _numOctaves; ++i) { signal = _source.Get(x, y); signal = _offset - Math.Abs(signal); signal *= signal; value += signal * _exparray[i]; x *= _lacunarity; y *= _lacunarity; } if (_withValueRemap) { FractalRemap remap = _fractalRemap[_numOctaves - 1]; if (base._defaultRange == enuBaseNoiseRange.MinOneToOne) { return(value * remap.Scale + remap.Bias); } else { return(((value * remap.Scale + remap.Bias) + 1.0) / 2.0); } } else { return(value); } }
public double Get(double x, double y, double z, double w) { double value, signal, weight; x *= _frequency; y *= _frequency; z *= _frequency; w *= _frequency; value = _source.Get(x, y, z, w) + _offset; weight = _gain * value; x *= _lacunarity; y *= _lacunarity; z *= _lacunarity; w *= _lacunarity; for (int i = 1; i < _numOctaves; ++i) { if (weight > 1.0) { weight = 1.0; } signal = (_source.Get(x, y, z, w) + _offset) * _exparray[i]; value += weight * signal; weight *= _gain * signal; x *= _lacunarity; y *= _lacunarity; z *= _lacunarity; w *= _lacunarity; } if (_withValueRemap) { FractalRemap remap = _fractalRemap[_numOctaves - 1]; if (base._defaultRange == enuBaseNoiseRange.MinOneToOne) { return(value * remap.Scale + remap.Bias); } else { return(((value * remap.Scale + remap.Bias) + 1.0) / 2.0); } } else { return(value); } }