public void MakeVideo(string videoName)
        {
            watch.Start();
            int imgCount = Option.VideoFPS * Option.VideoDuration;

            Bitmap[] image_sequence = new Bitmap[imgCount];

            tasksSceneRenderer = new PotatoTasksSceneRenderer(Scene.PotatoSceneData);

            for (int i = 0; i < imgCount; i++)
            {
                Bitmap[] imgs = tasksSceneRenderer.Run();

                BlendAllRenderedImageContainInTasksResult(imgs);

                Bitmap finalImage = imageBlender.GetFinalImageRender();
                image_sequence[i] = finalImage.Clone(new Rectangle(0, 0, finalImage.Width, finalImage.Height), finalImage.PixelFormat);

                //Scene.PotatoSceneData.Camera.Position = Scene.PotatoSceneData.Camera.Position + new System.DoubleNumerics.Vector3(1, 0, 0);
                for (int j = 0; j < Scene.PotatoSceneData.Spheres.Count; j++)
                {
                    Scene.PotatoSceneData.Spheres[j].Position = Scene.PotatoSceneData.Spheres[j].Position + new System.DoubleNumerics.Vector3(1, 0, 0);
                }
                imageBlender.Clear();
            }

            ClearRenderContext();
            CreateVideo(videoName, image_sequence);

            watch.Stop();
        }
        public PotatoRenderContext(Option option)
        {
            this.option = option;

            scene = new PotatoScene(option);
            tasksSceneRenderer = new PotatoTasksSceneRenderer(scene);
            imageBlender       = new ImageBlender();

            System.Console.WriteLine(scene.ToString());
        }
        public void MakeImage(string imageName)
        {
            watch.Start();
            tasksSceneRenderer = new PotatoTasksSceneRenderer(Scene.PotatoSceneData);
            Bitmap[] imgs = tasksSceneRenderer.Run();
            BlendAllRenderedImageContainInTasksResult(imgs);

            SaveAndOpenImage(imageName);

            ClearRenderContext();

            watch.Stop();
        }