#include <wardisotropic.h>
Public Member Functions | |
WardIsotropic (float rms) | |
virtual | ~WardIsotropic () |
virtual 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 33 of file wardisotropic.h.
WardIsotropic::WardIsotropic | ( | float | rms | ) |
Definition at line 30 of file wardisotropic.cpp.
References r.
virtual lux::WardIsotropic::~WardIsotropic | ( | ) | [inline, virtual] |
Definition at line 37 of file wardisotropic.h.
float WardIsotropic::D | ( | const Vector & | wh | ) | const [virtual] |
Implements lux::MicrofacetDistribution.
Definition at line 34 of file wardisotropic.cpp.
References cimg_library::acos(), lux::CosTheta(), cimg_library::exp(), M_PI, r, and cimg_library::tan().
Referenced by Pdf(), and Sample_f().
Implements lux::MicrofacetDistribution.
Definition at line 68 of file wardisotropic.cpp.
References D(), lux::Dot(), and lux::Normalize().
void WardIsotropic::Sample_f | ( | const Vector & | wi, | |
Vector * | sampled_f, | |||
float | u1, | |||
float | u2, | |||
float * | ||||
) | const [virtual] |
Implements lux::MicrofacetDistribution.
Definition at line 44 of file wardisotropic.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::WardIsotropic::r [private] |
Definition at line 46 of file wardisotropic.h.
Referenced by D(), Sample_f(), and WardIsotropic().