[][src]Trait pbrt::core::reflection::Bxdf

pub trait Bxdf {
    fn f(&self, wo: &Vector3f, wi: &Vector3f) -> Spectrum;
fn get_type(&self) -> u8; fn matches_flags(&self, t: u8) -> bool { ... }
fn sample_f(
        &self,
        wo: &Vector3f,
        wi: &mut Vector3f,
        u: &Point2f,
        pdf: &mut Float,
        _sampled_type: &mut u8
    ) -> Spectrum { ... }
fn pdf(&self, wo: &Vector3f, wi: &Vector3f) -> Float { ... } }

Required Methods

Provided Methods

Sample the BxDF for the given outgoing direction, using the given pair of uniform samples.

The default implementation uses importance sampling by using a cosine-weighted distribution.

Evaluate the PDF for the given outgoing and incoming directions.

Note: this method needs to be consistent with Bxdf::sample_f().

Implementors

impl Bxdf for FourierBSDF
[src]

impl Bxdf for FresnelBlend
[src]

impl Bxdf for FresnelSpecular
[src]

impl Bxdf for LambertianReflection
[src]

impl Bxdf for LambertianTransmission
[src]

impl Bxdf for MicrofacetReflection
[src]

impl Bxdf for MicrofacetTransmission
[src]

Override sample_f() to use a better importance sampling method than weighted cosine based on the microface distribution

impl Bxdf for OrenNayar
[src]

impl Bxdf for ScaledBxDF
[src]

impl Bxdf for SpecularReflection
[src]

impl Bxdf for SpecularTransmission
[src]

impl Bxdf for HairBSDF
[src]