36 lines
775 B
Rust
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>);
|
|
}
|