[−][src]Trait tray_rust::integrator::Integrator
Trait implemented by the various integration methods that can be used to render the scene. For scene usage information see whitted and path to get information on how to specify them.
Required methods
fn illumination(
&self,
scene: &Scene,
light_list: &[&Emitter],
ray: &Ray,
hit: &Intersection,
sampler: &mut dyn Sampler,
rng: &mut StdRng,
alloc: &Allocator
) -> Colorf
&self,
scene: &Scene,
light_list: &[&Emitter],
ray: &Ray,
hit: &Intersection,
sampler: &mut dyn Sampler,
rng: &mut StdRng,
alloc: &Allocator
) -> Colorf
Compute the illumination at the intersection in the scene
Provided methods
fn specular_reflection(
&self,
scene: &Scene,
light_list: &[&Emitter],
ray: &Ray,
bsdf: &BSDF,
sampler: &mut dyn Sampler,
rng: &mut StdRng,
alloc: &Allocator
) -> Colorf
&self,
scene: &Scene,
light_list: &[&Emitter],
ray: &Ray,
bsdf: &BSDF,
sampler: &mut dyn Sampler,
rng: &mut StdRng,
alloc: &Allocator
) -> Colorf
Compute the color of specularly reflecting light off the intersection
fn specular_transmission(
&self,
scene: &Scene,
light_list: &[&Emitter],
ray: &Ray,
bsdf: &BSDF,
sampler: &mut dyn Sampler,
rng: &mut StdRng,
alloc: &Allocator
) -> Colorf
&self,
scene: &Scene,
light_list: &[&Emitter],
ray: &Ray,
bsdf: &BSDF,
sampler: &mut dyn Sampler,
rng: &mut StdRng,
alloc: &Allocator
) -> Colorf
Compute the color of specularly transmitted light through the intersection
fn sample_one_light(
&self,
scene: &Scene,
light_list: &[&Emitter],
w_o: &Vector,
p: &Point,
bsdf: &BSDF,
light_sample: &Sample,
bsdf_sample: &Sample,
time: f32
) -> Colorf
&self,
scene: &Scene,
light_list: &[&Emitter],
w_o: &Vector,
p: &Point,
bsdf: &BSDF,
light_sample: &Sample,
bsdf_sample: &Sample,
time: f32
) -> Colorf
Uniformly sample the contribution of a randomly chosen light in the scene to the illumination of this BSDF at the point
w_o
outgoing direction of the light that is incident from the light being sampled and reflecting off the surfacebsdf
surface properties of the surface being illuminatedlight_sample
3 random samples for the lightbsdf_sample
3 random samples for the bsdf
fn estimate_direct(
&self,
scene: &Scene,
w_o: &Vector,
p: &Point,
bsdf: &BSDF,
light_sample: &Sample,
bsdf_sample: &Sample,
light: &dyn Light,
flags: EnumSet<BxDFType>,
time: f32
) -> Colorf
&self,
scene: &Scene,
w_o: &Vector,
p: &Point,
bsdf: &BSDF,
light_sample: &Sample,
bsdf_sample: &Sample,
light: &dyn Light,
flags: EnumSet<BxDFType>,
time: f32
) -> Colorf
Estimate the direct light contribution to the surface being shaded by the light using multiple importance sampling
w_o
outgoing direction of the light that is incident from the light being sampled and reflecting off the surfacebsdf
surface properties of the surface being illuminatedlight_sample
3 random samples for the lightbsdf_sample
3 random samples for the bsdflight
light to sample contribution fromflags
flags for which BxDF types to sample
Implementors
impl Integrator for NormalsDebug
[src]
fn illumination(
&self,
_: &Scene,
_: &[&Emitter],
_: &Ray,
hit: &Intersection,
_: &mut dyn Sampler,
_: &mut StdRng,
alloc: &Allocator
) -> Colorf
[src]
&self,
_: &Scene,
_: &[&Emitter],
_: &Ray,
hit: &Intersection,
_: &mut dyn Sampler,
_: &mut StdRng,
alloc: &Allocator
) -> Colorf
impl Integrator for Path
[src]
fn illumination(
&self,
scene: &Scene,
light_list: &[&Emitter],
r: &Ray,
hit: &Intersection,
sampler: &mut dyn Sampler,
rng: &mut StdRng,
alloc: &Allocator
) -> Colorf
[src]
&self,
scene: &Scene,
light_list: &[&Emitter],
r: &Ray,
hit: &Intersection,
sampler: &mut dyn Sampler,
rng: &mut StdRng,
alloc: &Allocator
) -> Colorf