Example #1
0
        public static Camera MakeCamera(string name, ParamSet parameters,
            TransformSet cameraToWorldSet, float transformStart, float transformEnd,
            Film film)
        {
            var animatedCameraToWorld = new AnimatedTransform(
                cameraToWorldSet[0], transformStart,
                cameraToWorldSet[1], transformEnd);

            switch (name)
            {
                case "perspective" :
                {
                    var shutterOpen = parameters.FindSingle("shutteropen", 0.0f);
                    var shutterClose = parameters.FindSingle("shutterclose", 1.0f);
                    if (shutterOpen < shutterClose)
                        MathUtility.Swap(ref shutterOpen, ref shutterClose);
                    var lensRadius = parameters.FindSingle("lensradius", 0.0f);
                    var focalDistance = parameters.FindSingle("focaldistance", 1e30f);
                    var frame = parameters.FindSingle("frameaspectratio", film.XResolution / (float) film.YResolution);
                    var screenWindow = parameters.FindSingleList("screenwindow");
                    if (screenWindow.Length != 4)
                        screenWindow = (frame > 1.0f)
                            ? new[] { -frame, frame, -1, 1 }
                            : new[] { -1, 1, -1 / frame, 1 / frame };
                    var fieldOfView = parameters.FindSingle("fov", 90.0f);

                    return new PerspectiveCamera(animatedCameraToWorld, screenWindow, shutterOpen, shutterClose,
                        lensRadius, focalDistance, fieldOfView, film);
                }
                default :
                    throw new ArgumentException("Unknown camera: " + name);
            }
        }
Example #2
0
        public static Film MakeFilm(string name, ParamSet parameters, Filter filter)
        {
            switch (name)
            {
            case "image":
            {
                var xres       = parameters.FindInt32("xresolution", 640);
                var yres       = parameters.FindInt32("yresolution", 480);
                var cropWindow = parameters.FindSingleList("cropwindow");
                if (cropWindow.Length == 0)
                {
                    cropWindow = new float[] { 0, 1, 0, 1 }
                }
                ;
                return(new ImageFilm(xres, yres, filter, cropWindow));
            }

            default:
                throw new ArgumentException("Unknown film: " + name);
            }
        }
Example #3
0
        public static Camera MakeCamera(string name, ParamSet parameters,
                                        TransformSet cameraToWorldSet, float transformStart, float transformEnd,
                                        Film film)
        {
            var animatedCameraToWorld = new AnimatedTransform(
                cameraToWorldSet[0], transformStart,
                cameraToWorldSet[1], transformEnd);

            switch (name)
            {
            case "perspective":
            {
                var shutterOpen  = parameters.FindSingle("shutteropen", 0.0f);
                var shutterClose = parameters.FindSingle("shutterclose", 1.0f);
                if (shutterOpen < shutterClose)
                {
                    MathUtility.Swap(ref shutterOpen, ref shutterClose);
                }
                var lensRadius    = parameters.FindSingle("lensradius", 0.0f);
                var focalDistance = parameters.FindSingle("focaldistance", 1e30f);
                var frame         = parameters.FindSingle("frameaspectratio", film.XResolution / (float)film.YResolution);
                var screenWindow  = parameters.FindSingleList("screenwindow");
                if (screenWindow.Length != 4)
                {
                    screenWindow = (frame > 1.0f)
                            ? new[] { -frame, frame, -1, 1 }
                }
                : new[] { -1, 1, -1 / frame, 1 / frame };
                var fieldOfView = parameters.FindSingle("fov", 90.0f);

                return(new PerspectiveCamera(animatedCameraToWorld, screenWindow, shutterOpen, shutterClose,
                                             lensRadius, focalDistance, fieldOfView, film));
            }

            default:
                throw new ArgumentException("Unknown camera: " + name);
            }
        }
Example #4
0
 public static Film MakeFilm(string name, ParamSet parameters, Filter filter)
 {
     switch (name)
     {
         case "image" :
         {
             var xres = parameters.FindInt32("xresolution", 640);
             var yres = parameters.FindInt32("yresolution", 480);
             var cropWindow = parameters.FindSingleList("cropwindow");
             if (cropWindow.Length == 0)
                 cropWindow = new float[] { 0, 1, 0, 1 };
             return new ImageFilm(xres, yres, filter, cropWindow);
         }
         default:
             throw new ArgumentException("Unknown film: " + name);
     }
 }