Exemplo n.º 1
0
    private float GetNoise(float x, float y, float z)
    {
        if (m_UsePerlin)
        {
            return(PerlinNoiseByte.GetValue(x, y, z));
        }

        return(SimplexNoise.GetValue(x, y, z));
    }
Exemplo n.º 2
0
    public void BenchmarkNoise()
    {
        if (m_BenchmarkPerlin)
        {
            long startTime = System.DateTimeOffset.UtcNow.ToUnixTimeMilliseconds();

            for (int i = 0; i < (int)(m_Dimension.x); ++i)
            {
                for (int j = 0; j < (int)(m_Dimension.y); ++j)
                {
                    var value = PerlinNoise.GetValue(i * 0.05f, j * 0.05f);
                }
            }


            long endTime = System.DateTimeOffset.UtcNow.ToUnixTimeMilliseconds();
            long elapsed = endTime - startTime;
            m_Result.perlin = (float)(elapsed) / (float)(((int)(m_Dimension.x) * (int)(m_Dimension.y)));
            m_BenchmarkDataPerlin.Add(m_Result.perlin);

            startTime = System.DateTimeOffset.UtcNow.ToUnixTimeMilliseconds();

            for (int i = 0; i < (int)(m_Dimension.x); ++i)
            {
                for (int j = 0; j < (int)(m_Dimension.y); ++j)
                {
                    var value = PerlinNoiseByte.GetValue(i * 0.05f, j * 0.05f, 0f);
                }
            }


            endTime             = System.DateTimeOffset.UtcNow.ToUnixTimeMilliseconds();
            elapsed             = endTime - startTime;
            m_Result.perlinByte = (float)(elapsed) / (float)(((int)(m_Dimension.x) * (int)(m_Dimension.y)));
            m_BenchmarkDataPerlinByte.Add(m_Result.perlinByte);
        }

        if (m_BenchmarkSimplex)
        {
            long startTime = System.DateTimeOffset.UtcNow.ToUnixTimeMilliseconds();

            for (int i = 0; i < (int)(m_Dimension.x); ++i)
            {
                for (int j = 0; j < (int)(m_Dimension.y); ++j)
                {
                    var value = SimplexNoise.GetValue(i * 0.1f, j * 0.1f, 0f);
                }
            }

            long endTime = System.DateTimeOffset.UtcNow.ToUnixTimeMilliseconds();
            long elapsed = endTime - startTime;
            m_Result.simplex = (float)(elapsed) / (float)(((int)(m_Dimension.x) * (int)(m_Dimension.y)));
            m_BenchmarkDataSimplex.Add(m_Result.simplex);
            Debug.Log("Simplex:" + startTime + " " + endTime + " " + elapsed);
        }
    }