/// <inheritdoc /> public double Noise(INoise3D sourceNoise, double x, double y, double z) { INoiseDistorter3DContracts.Noise(sourceNoise); return(this.distorter.Noise(sourceNoise, x, y, z).ConvertRange( this.sourceNoiseStart, this.sourceNoiseEnd, this.resultNoiseStart, this.resultNoiseEnd)); }
public NoiseSeedSurfaceGenerator( ISurfaceValueGenerator <TVoxel, TSurfaceData, TValue> generator, INoise3D positiveXAxisNoise, INoise3D negativeXAxisNoise, INoise3D positiveYAxisNoise, INoise3D negativeYAxisNoise, INoise3D positiveZAxisNoise, INoise3D negativeZAxisNoise) { Contracts.Requires.That(generator != null); Contracts.Requires.That(positiveXAxisNoise != null); Contracts.Requires.That(negativeXAxisNoise != null); Contracts.Requires.That(positiveYAxisNoise != null); Contracts.Requires.That(negativeYAxisNoise != null); Contracts.Requires.That(positiveZAxisNoise != null); Contracts.Requires.That(negativeZAxisNoise != null); this.generator = generator; this.positiveXNoise = positiveXAxisNoise; this.negativeXNoise = negativeXAxisNoise; this.positiveYNoise = positiveYAxisNoise; this.negativeYNoise = negativeYAxisNoise; this.positiveZNoise = positiveZAxisNoise; this.negativeZNoise = negativeZAxisNoise; }
public NoiseSeedSurfaceGenerator( ISurfaceValueGenerator <TVoxel, TSurfaceData, TValue> generator, INoise3D xAxisNoise, INoise3D yAxisNoise, INoise3D zAxisNoise) : this(generator, xAxisNoise, xAxisNoise, yAxisNoise, yAxisNoise, zAxisNoise, zAxisNoise) { }
public DistortedNoise3D(INoise3D noise, INoiseDistorter3D distorter) { Contracts.Requires.That(noise != null); Contracts.Requires.That(distorter != null); this.noise = noise; this.distorter = distorter; }
public NoiseWorldVoxelGridChunkPopulator( INoise3D noise, double noiseScaling, int numberOfOctaves, TerrainMaterial material) { Contracts.Requires.That(noise != null); Contracts.Requires.That(noiseScaling > 0); Contracts.Requires.That(numberOfOctaves >= 1); this.noise = noise; this.distorter = NoiseDistorter.New() .Frequency(noiseScaling, noiseScaling, noiseScaling).Octaves(numberOfOctaves); this.material = material; }
/// <inheritdoc /> public double Noise(INoise3D sourceNoise, double x, double y, double z) { INoiseDistorter3DContracts.Noise(sourceNoise); double result = 0; foreach (var distorter in this.distorters) { result += distorter.Noise(sourceNoise, x, y, z); } return(result); }
public SkyIslandVoxelGridChunkPopulator( SkyIslandVoxelPopulatorConfig config, IAsyncFactory <ChunkOverheadKey, IDisposableValue <IReadOnlySkyIslandMapChunk> > chunkFactory, IFactory <int, INoise3D> multiNoise) { Contracts.Requires.That(config != null); Contracts.Requires.That(chunkFactory != null); Contracts.Requires.That(multiNoise != null); this.config = config; this.chunkFactory = chunkFactory; this.environmentNoise = multiNoise.Create(SkyIslandNoiseSubSeed.Environment); this.caveNoise1 = multiNoise.Create(SkyIslandNoiseSubSeed.Cave1); this.caveNoise2 = multiNoise.Create(SkyIslandNoiseSubSeed.Cave2); }
private double GenerateCaveDensity(INoise3D noise, int x, int y, int z, float mapTopHeight) { Contracts.Requires.That(noise != null); double distanceFromTop = Math.Abs(mapTopHeight - y); double gradientWeight = (1 - (distanceFromTop / this.config.CaveEntranceGradientThickness)).Clamp(0, 1); double noiseDensity = this.config.CaveShapeDistorter.Noise(noise, x, y, z); // the original range of density is -1 to 1 // the cave multiplier narrows that range to only a thin band of values centered around 0 // that band is then converted from -.x to x => 1 to -1 to 1 // anything outside that band becomes greater then 1 // any positive value generated by this function does not generate cave return(Math.Abs(noiseDensity * this.config.CaveTunnelMultiplier) - 1 + gradientWeight); }
/// <inheritdoc /> public double Noise(INoise3D sourceNoise, double x, double y, double z) { INoiseDistorter3DContracts.Noise(sourceNoise); double result = this.distorter.Noise(sourceNoise, x, y, z); int weight = 2; for (int octave = 2; octave <= this.numberOfOctaves; octave++) { result += this.distorter.Noise(sourceNoise, x * weight, y * weight, z * weight) / weight; weight *= 2; } return(result); }
/// <inheritdoc /> public double Noise(INoise3D sourceNoise, double x, double y, double z) { INoiseDistorter3DContracts.Noise(sourceNoise); return(this.distorter.Noise(sourceNoise, x + this.xShift, y + this.yShift, z + this.zShift)); }
/// <inheritdoc /> public double Noise(INoise3D sourceNoise, double x, double y, double z) { INoiseDistorter3DContracts.Noise(sourceNoise); return(this.distorter.Noise(sourceNoise, x, y, z) * this.amplitude); }
/// <inheritdoc /> public double Noise(INoise3D sourceNoise, double x, double y, double z) { INoiseDistorter3DContracts.Noise(sourceNoise); return(this.distorter.Noise(sourceNoise, x * this.xFrequency, y * this.yFrequency, z * this.zFrequency)); }
public NoiseSeedSurfaceGenerator( ISurfaceValueGenerator <TVoxel, TSurfaceData, TValue> generator, INoise3D noise) : this(generator, noise, noise, noise) { }
/// <inheritdoc /> public double Noise(INoise3D sourceNoise, double x, double y, double z) { INoiseDistorter3DContracts.Noise(sourceNoise); return(sourceNoise.Noise(x, y, z)); }
public static void Noise(INoise3D sourceNoise) { Contracts.Requires.That(sourceNoise != null); }
/// <inheritdoc /> public double Noise(INoise3D sourceNoise, double x, double y, double z) { INoiseDistorter3DContracts.Noise(sourceNoise); return(this.distorter.Noise(sourceNoise, x, y, z).Clamp(this.min, this.max)); }