#include <reflection.h>
Public Member Functions | |
virtual | ~BxDF () |
BxDF (BxDFType t) | |
bool | MatchesFlags (BxDFType flags) const |
virtual Spectrum | f (const Vector &wo, const Vector &wi) const =0 |
virtual Spectrum | Sample_f (const Vector &wo, Vector *wi, float u1, float u2, float *pdf) const |
virtual Spectrum | rho (const Vector &wo, int nSamples=16, float *samples=NULL) const |
virtual Spectrum | rho (int nSamples=16, float *samples=NULL) const |
virtual float | Pdf (const Vector &wi, const Vector &wo) const |
Public Attributes | |
const BxDFType | type |
Definition at line 118 of file reflection.h.
virtual BxDF::~BxDF | ( | ) | [inline, virtual] |
Definition at line 121 of file reflection.h.
BxDF::BxDF | ( | BxDFType | t | ) | [inline] |
Definition at line 122 of file reflection.h.
bool BxDF::MatchesFlags | ( | BxDFType | flags | ) | const [inline] |
Definition at line 123 of file reflection.h.
Implemented in BRDFToBTDF, SpecularReflection, SpecularTransmission, Lambertian, OrenNayar, Microfacet, Lafortune, and FresnelBlend.
Referenced by BSDF::f(), BRDFToBTDF::f(), rho(), BSDF::Sample_f(), and Sample_f().
Spectrum BxDF::Sample_f | ( | const Vector & | wo, | |
Vector * | wi, | |||
float | u1, | |||
float | u2, | |||
float * | ||||
) | const [virtual] |
Reimplemented in BRDFToBTDF, SpecularReflection, SpecularTransmission, Microfacet, and FresnelBlend.
Definition at line 216 of file reflection.cpp.
References CosineSampleHemisphere(), f(), Pdf(), and Vector::z.
Referenced by rho(), BSDF::Sample_f(), and BRDFToBTDF::Sample_f().
Reimplemented in BRDFToBTDF, and Lambertian.
Definition at line 338 of file reflection.cpp.
References f(), LatinHypercube(), Sample_f(), and Vector::z.
Referenced by BSDF::rho().
Spectrum BxDF::rho | ( | int | nSamples = 16 , |
|
float * | samples = NULL | |||
) | const [virtual] |
Reimplemented in BRDFToBTDF, and Lambertian.
Definition at line 356 of file reflection.cpp.
References f(), INV_TWOPI, LatinHypercube(), M_PI, Sample_f(), UniformSampleHemisphere(), and Vector::z.
Reimplemented in BRDFToBTDF, SpecularReflection, SpecularTransmission, Microfacet, and FresnelBlend.
Definition at line 224 of file reflection.cpp.
References INV_PI, SameHemisphere(), and Vector::z.
Referenced by BSDF::Pdf(), BRDFToBTDF::Pdf(), BSDF::Sample_f(), and Sample_f().
const BxDFType BxDF::type |