Struct rs_pbrt::core::film::Film

source ·
pub struct Film {
    pub full_resolution: Point2i,
    pub diagonal: Float,
    pub filter: Box<Filter>,
    pub filename: String,
    pub cropped_pixel_bounds: Bounds2i,
    pub pixels: RwLock<Vec<Pixel>>,
    /* private fields */
}

Fields§

§full_resolution: Point2i

The overall resolution of the image in pixels

§diagonal: Float

The length of the diagonal of the film’s physical area (specified in mm, stored in meters)

§filter: Box<Filter>

A filter function

§filename: String

The filename of the output image

§cropped_pixel_bounds: Bounds2i

A crop window that may specify a subset of the image to render

§pixels: RwLock<Vec<Pixel>>

Implementations§

source§

impl Film

source

pub fn new( resolution: Point2i, crop_window: Bounds2f, filter: Box<Filter>, diagonal: Float, filename: String, scale: Float, max_sample_luminance: Float ) -> Self

source

pub fn create( params: &ParamSet, filter: Box<Filter>, crop_window: &Bounds2f ) -> Arc<Film>

source

pub fn get_cropped_pixel_bounds(&self) -> Bounds2i

source

pub fn get_sample_bounds(&self) -> Bounds2i

Examples found in repository?
examples/parse_ass_file.rs (line 210)
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
fn make_path_integrator(
    filter_width: Float,
    xres: i32,
    yres: i32,
    fov: Float,
    animated_cam_to_world: AnimatedTransform,
    maxdepth: i32,
    pixelsamples: i32,
) -> Option<Box<Integrator>> {
    let some_integrator: Option<Box<Integrator>>;
    let some_camera: Option<Arc<Camera>> =
        make_perspective_camera(filter_width, xres, yres, fov, animated_cam_to_world);
    if let Some(camera) = some_camera {
        let sampler_name: String = String::from("sobol");
        let mut sampler_params: ParamSet = ParamSet::default();
        sampler_params.add_int(String::from("pixelsamples"), pixelsamples);
        let some_sampler: Option<Box<Sampler>> =
            make_sampler(&sampler_name, &sampler_params, camera.get_film());
        if let Some(sampler) = some_sampler {
            // CreatePathIntegrator
            let integrator_params: ParamSet = ParamSet::default();
            let max_depth: i32 = integrator_params.find_one_int("maxdepth", maxdepth);
            let pixel_bounds: Bounds2i = camera.get_film().get_sample_bounds();
            let rr_threshold: Float = integrator_params.find_one_float("rrthreshold", 1.0 as Float);
            let light_strategy: String =
                integrator_params.find_one_string("lightsamplestrategy", String::from("spatial"));
            let integrator = Box::new(Integrator::Sampler(SamplerIntegrator::Path(
                PathIntegrator::new(
                    max_depth as u32,
                    camera,
                    sampler,
                    pixel_bounds,
                    rr_threshold,
                    light_strategy,
                ),
            )));
            some_integrator = Some(integrator);
        } else {
            panic!("Unable to create sampler.");
        }
    } else {
        panic!("Unable to create camera.");
    }
    some_integrator
}
source

pub fn get_physical_extent(&self) -> Bounds2f

source

pub fn get_film_tile(&self, sample_bounds: &Bounds2i) -> FilmTile<'_>

source

pub fn merge_film_tile(&self, tile: &FilmTile<'_>)

source

pub fn set_image(&self, img: &[Spectrum])

source

pub fn add_splat(&self, p: Point2f, v: &Spectrum)

source

pub fn write_image(&self, splat_scale: Float)

Auto Trait Implementations§

§

impl RefUnwindSafe for Film

§

impl Send for Film

§

impl Sync for Film

§

impl Unpin for Film

§

impl UnwindSafe for Film

Blanket Implementations§

source§

impl<T> Any for T
where T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Borrow<T> for T
where T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

source§

impl<T, U> Into<U> for T
where U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

§

impl<T> Pointable for T

§

const ALIGN: usize = _

The alignment of pointer.
§

type Init = T

The type for initializers.
§

unsafe fn init(init: <T as Pointable>::Init) -> usize

Initializes a with the given initializer. Read more
§

unsafe fn deref<'a>(ptr: usize) -> &'a T

Dereferences the given pointer. Read more
§

unsafe fn deref_mut<'a>(ptr: usize) -> &'a mut T

Mutably dereferences the given pointer. Read more
§

unsafe fn drop(ptr: usize)

Drops the object pointed to by the given pointer. Read more
source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.