Пример #1
0
        void ApplyBias()
        {
            // set corners and midpoint
            float[] corners = new float[4];
            int     c       = 0;

            for (int i = 0; i < genParams.RaisedCorners; i++)
            {
                corners[c++] = genParams.Bias;
            }
            for (int i = 0; i < genParams.LoweredCorners; i++)
            {
                corners[c++] = -genParams.Bias;
            }
            float midpoint = (genParams.MidPoint * genParams.Bias);

            // shuffle corners
            corners = corners.OrderBy(r => rand.Next()).ToArray();

            // overlay the bias
            Noise.ApplyBias(heightMap, corners[0], corners[1], corners[2], corners[3], midpoint);
        }