pbrt/src/integrators/mod.rs

36 lines
775 B
Rust

pub mod base;
pub mod constants;
pub mod path;
pub mod pipeline;
pub mod state;
pub use path::PathIntegrator;
use crate::Arena;
use shared::core::film::VisibleSurface;
use shared::core::geometry::{Point2i, Ray};
use shared::core::sampler::Sampler;
use shared::spectra::{SampledSpectrum, SampledWavelengths};
pub trait IntegratorTrait {
fn render(&self);
}
pub trait RayIntegratorTrait {
fn evaluate_pixel_sample(
&self,
p_pixel: Point2i,
sample_ind: usize,
sampler: &mut Sampler,
arena: &Arena,
);
fn li(
&self,
ray: Ray,
lambda: &SampledWavelengths,
sampler: &mut Sampler,
visible_surface: bool,
arena: &Arena,
) -> (SampledSpectrum, Option<VisibleSurface>);
}