#include <beckmann.h>
Public Member Functions | |
Beckmann (float rms) | |
float | D (const Vector &wh) const |
virtual void | Sample_f (const Vector &wi, Vector *sampled_f, float u1, float u2, float *pdf) const |
virtual float | Pdf (const Vector &wi, const Vector &wo) const |
Private Attributes | |
float | r |
Definition at line 34 of file beckmann.h.
Beckmann::Beckmann | ( | float | rms | ) |
float Beckmann::D | ( | const Vector & | wh | ) | const [virtual] |
Implements lux::MicrofacetDistribution.
Definition at line 38 of file beckmann.cpp.
References cimg_library::acos(), lux::CosTheta(), cimg_library::exp(), r, and cimg_library::tan().
Referenced by Pdf(), and Sample_f().
Implements lux::MicrofacetDistribution.
Definition at line 76 of file beckmann.cpp.
References D(), lux::Dot(), and lux::Normalize().
void Beckmann::Sample_f | ( | const Vector & | wi, | |
Vector * | sampled_f, | |||
float | u1, | |||
float | u2, | |||
float * | ||||
) | const [virtual] |
Implements lux::MicrofacetDistribution.
Definition at line 48 of file beckmann.cpp.
References cimg_library::atan(), cimg_library::cos(), D(), lux::Dot(), cimg_library::log(), M_PI, cimg_library::cimg::max(), r, lux::SameHemisphere(), lux::SphericalDirection(), cimg_library::sqrt(), and lux::Vector::z.
float lux::Beckmann::r [private] |