private void Start()
    {
        // get references
        backgroundSphere = transform.Find("BackgroundSphere").GetComponent <MeshRenderer>();
        nebulaMat        = backgroundSphere.sharedMaterial;
        planetAnchor     = transform.Find("PlanetAnchor");
        MeshRenderer planetMR = planetAnchor.GetComponentInChildren <MeshRenderer>();

        //planetMat = new Material(planetMR.sharedMaterial);
        planetMat         = new Material(planetMaterials[Random.Range(0, planetMaterials.Length)]);
        planetMR.material = planetMat;

        if (regeneratePointStars)
        {
            Texture2D pointStars = StarGenerator.GeneratePointStars(width, starDensity, starBrightness, backgroundColor);
            backgroundSphere.material.mainTexture = pointStars;

            // save the texture
            SaveTextureAsPNG(pointStars, "pointStars");
        }

        RandomizeNebula();
        RandomizePlanet();

        //CaptureBackground();
        StartCoroutine(CaptureNextFrame());
    }