Enum rs_pbrt::core::reflection::Bxdf
source · pub enum Bxdf {
Show 18 variants
Empty(NoBxdf),
SpecRefl(SpecularReflection),
SpecTrans(SpecularTransmission),
FresnelSpec(FresnelSpecular),
LambertianRefl(LambertianReflection),
LambertianTrans(LambertianTransmission),
OrenNayarRefl(OrenNayar),
MicrofacetRefl(MicrofacetReflection),
MicrofacetTrans(MicrofacetTransmission),
FresnelBlnd(FresnelBlend),
Fourier(FourierBSDF),
Bssrdf(SeparableBssrdfAdapter),
DisDiff(DisneyDiffuse),
DisSS(DisneyFakeSS),
DisRetro(DisneyRetro),
DisSheen(DisneySheen),
DisClearCoat(DisneyClearCoat),
Hair(HairBSDF),
}
Variants§
Empty(NoBxdf)
SpecRefl(SpecularReflection)
SpecTrans(SpecularTransmission)
FresnelSpec(FresnelSpecular)
LambertianRefl(LambertianReflection)
LambertianTrans(LambertianTransmission)
OrenNayarRefl(OrenNayar)
MicrofacetRefl(MicrofacetReflection)
MicrofacetTrans(MicrofacetTransmission)
FresnelBlnd(FresnelBlend)
Fourier(FourierBSDF)
Bssrdf(SeparableBssrdfAdapter)
DisDiff(DisneyDiffuse)
DisSS(DisneyFakeSS)
DisRetro(DisneyRetro)
DisSheen(DisneySheen)
DisClearCoat(DisneyClearCoat)
Hair(HairBSDF)
Implementations§
source§impl Bxdf
impl Bxdf
pub fn matches_flags(&self, t: u8) -> bool
pub fn f(&self, wo: &Vector3f, wi: &Vector3f) -> Spectrum
sourcepub fn sample_f(
&self,
wo: &Vector3f,
wi: &mut Vector3f,
u: &Point2f,
pdf: &mut Float,
sampled_type: &mut u8
) -> Spectrum
pub fn sample_f( &self, wo: &Vector3f, wi: &mut Vector3f, u: &Point2f, pdf: &mut Float, sampled_type: &mut u8 ) -> Spectrum
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.
sourcepub fn pdf(&self, wo: &Vector3f, wi: &Vector3f) -> Float
pub fn pdf(&self, wo: &Vector3f, wi: &Vector3f) -> Float
Evaluate the PDF for the given outgoing and incoming directions.
Note: this method needs to be consistent with Bxdf::sample_f()
.
pub fn get_type(&self) -> u8
Trait Implementations§
Auto Trait Implementations§
impl !RefUnwindSafe for Bxdf
impl Send for Bxdf
impl Sync for Bxdf
impl Unpin for Bxdf
impl !UnwindSafe for Bxdf
Blanket Implementations§
source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere T: ?Sized,
source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more