#include <reflection.h>
Public Member Functions | |
Microfacet (const Spectrum &reflectance, Fresnel *f, MicrofacetDistribution *d) | |
Spectrum | f (const Vector &wo, const Vector &wi) const |
float | G (const Vector &wo, const Vector &wi, const Vector &wh) const |
Spectrum | Sample_f (const Vector &wo, Vector *wi, float u1, float u2, float *pdf) const |
float | Pdf (const Vector &wo, const Vector &wi) const |
Private Attributes | |
Spectrum | R |
MicrofacetDistribution * | distribution |
Fresnel * | fresnel |
Definition at line 390 of file reflection.h.
Microfacet::Microfacet | ( | const Spectrum & | reflectance, | |
Fresnel * | f, | |||
MicrofacetDistribution * | d | |||
) |
Definition at line 196 of file reflection.cpp.
Implements BxDF.
Definition at line 203 of file reflection.cpp.
References AbsCosTheta(), MicrofacetDistribution::D(), distribution, Dot(), Fresnel::Evaluate(), fresnel, G(), Normalize(), R, Vector::x, Vector::y, and Vector::z.
Referenced by Sample_f().
Definition at line 396 of file reflection.h.
References AbsCosTheta(), and AbsDot().
Referenced by f().
Reimplemented from BxDF.
Definition at line 326 of file reflection.cpp.
References distribution, MicrofacetDistribution::Pdf(), and SameHemisphere().
Spectrum Microfacet::Sample_f | ( | const Vector & | wo, | |
Vector * | wi, | |||
float | u1, | |||
float | u2, | |||
float * | ||||
) | const [virtual] |
Reimplemented from BxDF.
Definition at line 318 of file reflection.cpp.
References distribution, f(), SameHemisphere(), and MicrofacetDistribution::Sample_f().
MicrofacetDistribution* Microfacet::distribution [private] |
Definition at line 410 of file reflection.h.
Referenced by f(), Pdf(), and Sample_f().
Fresnel* Microfacet::fresnel [private] |
Definition at line 411 of file reflection.h.
Referenced by f().
Spectrum Microfacet::R [private] |
Definition at line 409 of file reflection.h.
Referenced by f().