Example #1
0
    /// <summary>
    /// Get biome that given vertex belongs to.
    /// </summary>
    private int GetBiome(int x, int z, Vector3 terrainSize, int biomeAmount, Vector2 noiseOffset)
    {
        float noiseX, noiseZ, value;

        if (TerrainController.UsePerlinNoiseForBiomes)
        {
            noiseX = TerrainController.BiomeFrequency * 0.1f * x / xSegments + noiseOffset.x;
            noiseZ = TerrainController.BiomeFrequency * 0.1f * z / zSegments + noiseOffset.y;
            value  = Mathf.PerlinNoise(noiseX, noiseZ);
        }
        else
        {
            noiseX = x * xStep + transform.position.x - terrainSize.x / 2;
            noiseZ = z * zStep + transform.position.z - terrainSize.z / 2;
            value  = VoronoiTiling.GetClosestCentroidValue(new Vector2Int((int)noiseX, (int)noiseZ), closestCentroids);
        }

        return(Mathf.FloorToInt(value / (1.00f / biomeAmount)));
    }