Ejemplo n.º 1
0
    float GetNoiseValue(Vector3 square)
    {
        float noiseF = 0.0f;

        switch (m_Noise)
        {
        case NOISE.GRADIENT:
            //dont do this, init it only once!
            GradientNoise gnoise = new GradientNoise(m_Seed);
            //noise scale is for how fine graded the noise is.
            //we need a combination between fine and rough noise
            noiseF = gnoise.GetValue(square.y * m_NoiseScale, square.x * m_NoiseScale, square.z * m_NoiseScale);
            break;

        case NOISE.SIMPLEX:

            noiseF = ((float)Simplex.Noise.CalcPixel3D((int)(square.x * m_NoiseScale), (int)(square.y * m_NoiseScale), (int)(square.z * m_NoiseScale), 1.0f) * (1.0f / 256.0f) - 0.5f) * 2.0f;
            break;

        case NOISE.PERLIN:
            noiseF = noiseF = GetPerlinNoise(square.x * m_NoiseScale, square.y * m_NoiseScale, square.z * m_NoiseScale);
            break;
        }


        return(noiseF);
    }