Esempio n. 1
0
        /// <summary>
        /// Saves the <see cref="Viewport3D"/> to left/right bitmap files.
        /// </summary>
        /// <param name="view">The viewport.</param>
        /// <param name="fileName">Name of the file. "_L" and "_R" will be appended to the file name.</param>
        /// <param name="stereoBase">The stereo base.</param>
        /// <param name="background">The background brush.</param>
        /// <param name="m">The oversampling multiplier.</param>
        public static void SaveStereoBitmap(this Viewport3D view, string fileName, double stereoBase, Brush background = null, int m = 1)
        {
            var extension     = System.IO.Path.GetExtension(fileName);
            var directory     = System.IO.Path.GetDirectoryName(fileName) ?? string.Empty;
            var name          = System.IO.Path.GetFileNameWithoutExtension(fileName) ?? string.Empty;
            var leftFileName  = System.IO.Path.Combine(directory, name) + "_L" + extension;
            var rightFileName = System.IO.Path.Combine(directory, name) + "_R" + extension;

            var centerCamera = view.Camera as PerspectiveCamera;
            var leftCamera   = new PerspectiveCamera();
            var rightCamera  = new PerspectiveCamera();

            StereoHelper.UpdateStereoCameras(centerCamera, leftCamera, rightCamera, stereoBase);

            // save the left image
            using (var stream = File.Create(leftFileName))
            {
                view.Camera = leftCamera;
                view.SaveBitmap(stream, background, m);
            }

            // save the right image
            using (var stream = File.Create(rightFileName))
            {
                view.Camera = rightCamera;
                view.SaveBitmap(stream, background, m);
            }

            // restore original camera
            view.Camera = centerCamera;
        }
Esempio n. 2
0
 public static void RenderToBmp(Viewport3D view, string fileName, Brush background = null, int overSamplingMultiplier = 1)
 => view.SaveBitmap(fileName, background, overSamplingMultiplier, BitmapExporter.OutputFormat.Bmp);