예제 #1
0
        public float power = 1.6f;                  // usually a range of 1 to 2

        override public float added(RTGWorld rtgWorld, float x, float y)
        {
            float noise = rtgWorld.simplex.octave(octave).noise2((float)x / wavelength, (float)y / wavelength);

            if (noise < minimumSimplex)
            {
                noise = minimumSimplex;
            }
            noise = 1f - (1f - noise) / (1f - minimumSimplex);
            noise = TerrainBase.unsignedPower(noise, power);
            return(noise * height);
        }
예제 #2
0
        override public float added(RTGWorld rtgWorld, float x, float y)
        {
            float noise = rtgWorld.simplex.octave(hillOctave).noise2(x / mountainWavelength, y / mountainWavelength);

            noise = Math.Abs(noise);
            noise = TerrainBase.blendedHillHeight(noise, 0f);
            //transform to be more mountainous
            noise = TerrainBase.unsignedPower(noise, 1.7f);
            noise = 1f - (1f - noise) / (1f - adjustedBottom);
            float spikeNoise = rtgWorld.simplex.octave(spikeOctave).noise2((float)x / spikeWavelength, (float)y / spikeWavelength);

            spikeNoise  = Math.Abs(noise);
            spikeNoise  = TerrainBase.blendedHillHeight(noise, 0f);
            spikeNoise *= noise;
            return(noise * mountainHeight + spikeNoise * spikeHeight);
        }