SamplerIntegrator

Trait SamplerIntegrator 

Source
pub trait SamplerIntegrator: Integrator + Sync {
    // Required methods
    fn li(
        &self,
        ray: &RayDifferential,
        scene: &Scene,
        sampler: &mut dyn Sampler,
        arena: &mut MemoryArena,
        depth: i32,
    ) -> Spectrum;
    fn get_sampler(&self) -> Arc<RwLock<dyn Sampler>>;
    fn get_pixel_bounds(&self) -> Bounds2i;

    // Provided methods
    fn preprocess(&mut self, _scene: &Scene, _sampler: &mut dyn Sampler) { ... }
    fn specular_reflect(
        &self,
        ray: &RayDifferential,
        isect: &SurfaceInteraction,
        scene: &Scene,
        sampler: &mut dyn Sampler,
        arena: &mut MemoryArena,
        depth: i32,
    ) -> Spectrum { ... }
    fn specular_transmit(
        &self,
        ray: &RayDifferential,
        isect: &SurfaceInteraction,
        scene: &Scene,
        sampler: &mut dyn Sampler,
        arena: &mut MemoryArena,
        depth: i32,
    ) -> Spectrum { ... }
}

Required Methods§

Source

fn li( &self, ray: &RayDifferential, scene: &Scene, sampler: &mut dyn Sampler, arena: &mut MemoryArena, depth: i32, ) -> Spectrum

Source

fn get_sampler(&self) -> Arc<RwLock<dyn Sampler>>

Source

fn get_pixel_bounds(&self) -> Bounds2i

Provided Methods§

Source

fn preprocess(&mut self, _scene: &Scene, _sampler: &mut dyn Sampler)

Source

fn specular_reflect( &self, ray: &RayDifferential, isect: &SurfaceInteraction, scene: &Scene, sampler: &mut dyn Sampler, arena: &mut MemoryArena, depth: i32, ) -> Spectrum

Source

fn specular_transmit( &self, ray: &RayDifferential, isect: &SurfaceInteraction, scene: &Scene, sampler: &mut dyn Sampler, arena: &mut MemoryArena, depth: i32, ) -> Spectrum

Implementors§