Function rs_pbrt::core::api::make_camera
source · pub fn make_camera(
camera_name: &str,
camera_params: &ParamSet,
animated_cam_to_world: AnimatedTransform,
film: Arc<Film>,
clipping_start: Float
) -> Option<Arc<Camera>>
Examples found in repository?
examples/parse_ass_file.rs (lines 176-182)
149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186
pub fn make_perspective_camera(
filter_width: Float,
xres: i32,
yres: i32,
fov: Float,
animated_cam_to_world: AnimatedTransform,
) -> Option<Arc<Camera>> {
let mut some_camera: Option<Arc<Camera>> = None;
let mut filter_params: ParamSet = ParamSet::default();
filter_params.add_float(String::from("xwidth"), filter_width);
filter_params.add_float(String::from("ywidth"), filter_width);
let some_filter = make_filter(&String::from("gaussian"), &filter_params);
if let Some(filter) = some_filter {
let film_name: String = String::from("image");
let mut film_params: ParamSet = ParamSet::default();
film_params.add_int(String::from("xresolution"), xres);
film_params.add_int(String::from("yresolution"), yres);
let crop_window: Bounds2f = Bounds2f {
p_min: Point2f { x: 0.0, y: 0.0 },
p_max: Point2f { x: 1.0, y: 1.0 },
};
let some_film: Option<Arc<Film>> =
make_film(&film_name, &film_params, filter, &crop_window);
if let Some(film) = some_film {
let camera_name: String = String::from("perspective");
let mut camera_params: ParamSet = ParamSet::default();
camera_params.add_float(String::from("fov"), fov);
some_camera = make_camera(
&camera_name,
&camera_params,
animated_cam_to_world,
film,
0.0,
);
}
}
some_camera
}