Example #1
0
    public void GenerateWorld()
    {
        float[,] noiseMap = Noise.GenerateNoiseMap(_chunkSize + 2, _chunkSize + 2, _seed, _noiseScale, _octaves, _persistance, _lacunarity, _offset, _radius);

        //Color
        Color[] colorMap = new Color[_chunkSize * _chunkSize];
        for (int x = 0; x < _chunkSize; x++)
        {
            for (int y = 0; y < _chunkSize; y++)
            {
                float currentHeight = noiseMap[x, y];

                for (int i = 0; i < regions.Length; i++)
                {
                    if (currentHeight <= regions[i].height)
                    {
                        colorMap[y * _chunkSize + x] = regions[i].color;
                        break;
                    }
                }
            }
        }

        WorldDisplay display = FindObjectOfType <WorldDisplay>();

        if (drawMode == DrawMode.NoiseMap)
        {
            display.DrawTexture(TextureGenerator.TextureFromHeightMap(noiseMap));
        }
        else if (drawMode == DrawMode.ColorMap)
        {
            display.DrawTexture(TextureGenerator.TextureFromColorMap(colorMap, _chunkSize, _chunkSize));
        }
        else if (drawMode == DrawMode.Mesh)
        {
            display.DrawMesh(MeshGenerator.GenerateTerrainMesh(noiseMap, _meshHeightMultiplier, _meshHeightCurve, _LevelOfDetail, _useTerrainFlatShading), TextureGenerator.TextureFromColorMap(colorMap, _chunkSize, _chunkSize));
        }


        SpawnObjects(noiseMap, _densitiy);
    }
Example #2
0
    public void RendWorld()
    {
        WorldStats   worldStats = GenerateWorld(Vector2.zero);
        WorldDisplay display    = FindObjectOfType <WorldDisplay>();

        if (drawMode == DrawMode.NoiseWorld)
        {
            display.DrawTexture(Texturing.TextureFromHeightMap(worldStats.heightWorld));
        }
        else if (drawMode == DrawMode.ColourWorld)
        {
            display.DrawTexture(Texturing.TextureFromColourMap(worldStats.colourWorld, worldPartSize, worldPartSize));
        }
        else if (drawMode == DrawMode.Mesh)
        {
            display.DrawMesh(MeshGenerator.GenerateTerrainMesh(worldStats.heightWorld, meshHeightMultiplier, meshHeightCurve, ValueLevelOfDetail), Texturing.TextureFromColourMap(worldStats.colourWorld, worldPartSize, worldPartSize));
        }
        else if (drawMode == DrawMode.FallMap)
        {
            display.DrawTexture(Texturing.TextureFromHeightMap(FallGenerator.GenerateFall(worldPartSize)));
        }
    }