#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 283 of file reflection.h.
Microfacet::Microfacet | ( | const Spectrum & | reflectance, | |
Fresnel * | f, | |||
MicrofacetDistribution * | d | |||
) |
Definition at line 157 of file reflection.cpp.
Implements BxDF.
Definition at line 163 of file reflection.cpp.
References CosTheta(), MicrofacetDistribution::D(), distribution, Dot(), Fresnel::Evaluate(), fresnel, G(), Normalize(), and R.
Referenced by Sample_f().
Definition at line 289 of file reflection.h.
References AbsDot(), and CosTheta().
Referenced by f().
Spectrum Microfacet::Sample_f | ( | const Vector & | wo, | |
Vector * | wi, | |||
float | u1, | |||
float | u2, | |||
float * | ||||
) | const [virtual] |
Reimplemented from BxDF.
Definition at line 232 of file reflection.cpp.
References distribution, f(), SameHemisphere(), and MicrofacetDistribution::Sample_f().
Reimplemented from BxDF.
Definition at line 238 of file reflection.cpp.
References distribution, MicrofacetDistribution::Pdf(), and SameHemisphere().
Spectrum Microfacet::R [private] |
MicrofacetDistribution* Microfacet::distribution [private] |
Fresnel* Microfacet::fresnel [private] |