Exemplo n.º 1
0
    public PlanetNoise(PlanetNoiseSettings settings)
    {
        if (settings.octaves < 1)
        {
            settings.octaves = 1;
        }

        this.settings = settings;

        noiseClass = new ValueNoise(settings.seed);
    }
Exemplo n.º 2
0
    public void GenerateCube(PlanetSettings planetSettings, PlanetNoiseSettings noiseSettings, Planet planet, int chunkX, int chunkZ, int chunkY)
    {
        _meshFilter   = GetComponent <MeshFilter>();
        _meshCollider = GetComponent <MeshCollider>();

        _planetSettings = planetSettings;
        _noiseSettings  = noiseSettings;
        _chunkX         = chunkX;
        _chunkZ         = chunkZ;
        _chunkY         = chunkY;
        _data           = new float[_planetSettings.chunkResolution, _planetSettings.worldHeight, _planetSettings.chunkResolution];

        float size = (float)_planetSettings.chunkSize / _planetSettings.chunkResolution;

        for (int x = 0; x < _planetSettings.chunkResolution; x++)
        {
            for (int z = 0; z < _planetSettings.chunkResolution; z++)
            {
                float posX = x * size;
                float posZ = z * size;
                float posY = 0;

                Vector3 sphereCoordinates = new Vector3(posX, posZ, posY) + transform.localPosition;
                sphereCoordinates.Normalize();
                Vector3 pos = sphereCoordinates * planetSettings.radius;

                float height = Noise.Value(pos.x, pos.y, pos.z, noiseSettings);
                height *= _planetSettings.worldHeight;

                for (int h = 0; h < (int)height; h++)
                {
                    _data[x, h, z] = 1;
                }
            }
        }
        GenerateMesh(_planetSettings.surfaceCrossValue, planet, _planetSettings.chunkResolution);
    }
Exemplo n.º 3
0
 public NoiseFilter(PlanetNoiseSettings settings)
 {
     noiseSettings = settings;
 }
Exemplo n.º 4
0
 public static float Value(float x, float y, float z, PlanetNoiseSettings settings)
 {
     return(0.5f);
 }