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); } }
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); } }
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); } }
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); } }