public VCloudsManager(SkyX skyX)
        {
            this.SkyX   = skyX;
            _height     = new Vector2(-1, -1);
            _windSpeed  = 800.0f;
            _autoUpdate = true;
            _isCreated  = false;

            _ambientGradient = new ColorGradient();
            _ambientGradient.AddFrame(new KeyValuePair <Vector3, float>(new Vector3(1, 1, 1) * 0.9f, 1.0f));
            _ambientGradient.AddFrame(new KeyValuePair <Vector3, float>(new Vector3(0.7f, 0.7f, 0.65f), 0.625f));
            _ambientGradient.AddFrame(new KeyValuePair <Vector3, float>(new Vector3(0.6f, 0.55f, 0.4f) * 0.5f, 0.5625f));
            _ambientGradient.AddFrame(new KeyValuePair <Vector3, float>(new Vector3(0.6f, 0.55f, 0.4f) * 0.2f, 0.475f));
            _ambientGradient.AddFrame(new KeyValuePair <Vector3, float>(new Vector3(0.6f, 0.45f, 0.3f) * 0.1f, 0.5f));
            _ambientGradient.AddFrame(new KeyValuePair <Vector3, float>(new Vector3(0.2f, 0.2f, 0.3f) * 0.25f, 0.35f));
            _ambientGradient.AddFrame(new KeyValuePair <Vector3, float>(new Vector3(0.2f, 0.2f, 0.3f) * 0.3f, 0));

            _sunGradient = new ColorGradient();
            _sunGradient.AddFrame(new KeyValuePair <Vector3, float>(new Vector3(1, 1, 1) * 0.9f, 1.0f));
            _sunGradient.AddFrame(new KeyValuePair <Vector3, float>(new Vector3(1, 1, 1) * 0.8f, 0.75f));
            _sunGradient.AddFrame(new KeyValuePair <Vector3, float>(new Vector3(0.8f, 0.75f, 0.55f) * 1.3f, 0.5625f));
            _sunGradient.AddFrame(new KeyValuePair <Vector3, float>(new Vector3(0.6f, 0.5f, 0.2f) * 1.5f, 0.5f));
            _sunGradient.AddFrame(new KeyValuePair <Vector3, float>(new Vector3(0.6f, 0.5f, 0.2f) * 0.2f, 0.4725f));
            _sunGradient.AddFrame(new KeyValuePair <Vector3, float>(new Vector3(0.5f, 0.5f, 0.5f) * 0.05f, 0.45f));
            _sunGradient.AddFrame(new KeyValuePair <Vector3, float>(new Vector3(0.25f, 0.25f, 0.25f), 0.3725f));
            _sunGradient.AddFrame(new KeyValuePair <Vector3, float>(new Vector3(0.5f, 0.5f, 0.5f), 0.0f));
        }
        public VCloudsManager(SkyX skyX)
        {
            this.SkyX = skyX;
            _height = new Vector2(-1, -1);
            _windSpeed = 800.0f;
            _autoUpdate = true;
            _isCreated = false;

            _ambientGradient = new ColorGradient();
            _ambientGradient.AddFrame(new KeyValuePair<Vector3, float>(new Vector3(1, 1, 1) * 0.9f, 1.0f));
            _ambientGradient.AddFrame(new KeyValuePair<Vector3, float>(new Vector3(0.7f, 0.7f, 0.65f), 0.625f));
            _ambientGradient.AddFrame(new KeyValuePair<Vector3, float>(new Vector3(0.6f, 0.55f, 0.4f) * 0.5f, 0.5625f));
            _ambientGradient.AddFrame(new KeyValuePair<Vector3, float>(new Vector3(0.6f, 0.55f, 0.4f) * 0.2f, 0.475f));
            _ambientGradient.AddFrame(new KeyValuePair<Vector3, float>(new Vector3(0.6f, 0.45f, 0.3f) * 0.1f, 0.5f));
            _ambientGradient.AddFrame(new KeyValuePair<Vector3, float>(new Vector3(0.2f, 0.2f, 0.3f) * 0.25f, 0.35f));
            _ambientGradient.AddFrame(new KeyValuePair<Vector3, float>(new Vector3(0.2f, 0.2f, 0.3f) * 0.3f, 0));

            _sunGradient = new ColorGradient();
            _sunGradient.AddFrame(new KeyValuePair<Vector3, float>(new Vector3(1, 1, 1) * 0.9f, 1.0f));
            _sunGradient.AddFrame(new KeyValuePair<Vector3, float>(new Vector3(1, 1, 1) * 0.8f, 0.75f));
            _sunGradient.AddFrame(new KeyValuePair<Vector3, float>(new Vector3(0.8f, 0.75f, 0.55f) * 1.3f, 0.5625f));
            _sunGradient.AddFrame(new KeyValuePair<Vector3, float>(new Vector3(0.6f, 0.5f, 0.2f) * 1.5f, 0.5f));
            _sunGradient.AddFrame(new KeyValuePair<Vector3, float>(new Vector3(0.6f, 0.5f, 0.2f) * 0.2f, 0.4725f));
            _sunGradient.AddFrame(new KeyValuePair<Vector3, float>(new Vector3(0.5f, 0.5f, 0.5f) * 0.05f, 0.45f));
            _sunGradient.AddFrame(new KeyValuePair<Vector3, float>(new Vector3(0.25f, 0.25f, 0.25f), 0.3725f));
            _sunGradient.AddFrame(new KeyValuePair<Vector3, float>(new Vector3(0.5f, 0.5f, 0.5f), 0.0f));
        }