Exemple #1
0
        protected override void Start()
        {
            m_NoiseCubes = new List <NoiseCube>((int)(SideLength * SideLength));

            base.Start();

            m_Noise = FractalBrownianMotion.GenerateTileableNoise((int)SideLength, (int)SideLength, 20, 3, .55f, .05f,
                                                                  2f, SimplexNoiseGenerator.Noise3D, (int)(Random.value * 10000f));

            StartCoroutine(ChangeAnimPoint());
        }
        public void FractalBrownianMotion()
        {
            int terrainWidth  = TerrainData.heightmapResolution;
            int terrainHeight = TerrainData.heightmapResolution;
            var fBm           = new FractalBrownianMotion();


            float[,] heightMap = TerrainData.GetHeights(0, 0, terrainWidth, terrainHeight);

            for (int x = 0; x < terrainHeight; x++)
            {
                for (int y = 0; y < terrainWidth; y++)
                {
                    double inputX = (x + PerlinOffsetX) * PerlinScaleX;
                    double inputY = (y + PerlinOffsetY) * PerlinScaleY;
                    heightMap[x, y] += (float)fBm.Generate(inputX, inputY, PerlinOctaves, PerlinPersistance) * PerlinHeightScale;
                }
            }

            //SaveToFile(heightMap, "./OwnPerlinNoise.csv");
            TerrainData.SetHeights(0, 0, heightMap);
        }