Example #1
0
    private void makeCell(Vector3 coords)
    {
        Bounds bounds = new Bounds(coords, Vector3.one * spaceSettings.subdivisionDimmension);

        for (float x = (int)coords.x - spaceSettings.subdivisionDimmension / 2; x < (int)coords.x + spaceSettings.subdivisionDimmension / 2; x += 2 - spaceSettings.density)
        {
            for (float y = (int)coords.y - spaceSettings.subdivisionDimmension / 2; y < (int)coords.y + spaceSettings.subdivisionDimmension / 2; y += 2 - spaceSettings.density)
            {
                for (float z = (int)coords.z - spaceSettings.subdivisionDimmension / 2; z < (int)coords.z + spaceSettings.subdivisionDimmension / 2; z += 2 - spaceSettings.density)
                {
                    //initial position
                    Vector3 pos = new Vector3(x, y, z);
                    //calculating jitter
                    Vector3 jitter = new Vector3(0.5f - noise.evaluate(pos + Vector3.left), 0.5f - noise.evaluate(pos + Vector3.up), 0.5f - noise.evaluate(pos + Vector3.forward));
                    //applying jitter
                    pos += jitter * spaceSettings.jitterMultiplier;
                    //calculating size from pos
                    float value = noise.evaluate(pos * spaceSettings.samplingResolution);
                    //creating solar system if valid
                    if (value <= 0.5 && bounds.Contains(pos))
                    {
                        SolarSystemMaker ssm = new SolarSystemMaker(pos);
                    }
                }
            }
        }
    }
Example #2
0
    float getAltitudeFromNoiseLayer(NoiseSettings layer, Vector3 pointOnUnitSphere)
    {
        float altitude  = 0;
        float frequency = layer.baseRoughness;
        float amplitude = 1;

        for (int i = 0; i < layer.numLayers; i++)
        {
            float v = noise.evaluate(pointOnUnitSphere * frequency + layer.center);
            altitude  += v * amplitude;
            frequency *= layer.roughness;
            amplitude *= layer.persistance;
        }
        altitude  = Mathf.Max(0, altitude - layer.flatThreshold);
        altitude *= layer.strength;
        return(altitude);
    }