#include <lafortune.h>
Public Member Functions | |
Lafortune (const SWCSpectrum &r, u_int nl, const SWCSpectrum *x, const SWCSpectrum *y, const SWCSpectrum *z, const SWCSpectrum *e, BxDFType t) | |
SWCSpectrum | f (const Vector &wo, const Vector &wi) const |
SWCSpectrum | Sample_f (const Vector &wi, Vector *sampled_f, float u1, float u2, float *pdf, float *pdfBack=NULL) const |
float | Pdf (const Vector &wi, const Vector &wo) const |
Private Attributes | |
SWCSpectrum | R |
u_int | nLobes |
const SWCSpectrum * | x |
const SWCSpectrum * | y |
const SWCSpectrum * | z |
const SWCSpectrum * | exponent |
Definition at line 33 of file lafortune.h.
Lafortune::Lafortune | ( | const SWCSpectrum & | r, | |
u_int | nl, | |||
const SWCSpectrum * | x, | |||
const SWCSpectrum * | y, | |||
const SWCSpectrum * | z, | |||
const SWCSpectrum * | e, | |||
BxDFType | t | |||
) |
SWCSpectrum Lafortune::f | ( | const Vector & | wo, | |
const Vector & | wi | |||
) | const [virtual] |
Implements lux::BxDF.
Definition at line 45 of file lafortune.cpp.
References exponent, INV_PI, nLobes, lux::SWCSpectrum::Pow(), R, lux::Vector::x, x, lux::Vector::y, y, lux::Vector::z, and z.
Referenced by Pdf(), and Sample_f().
Reimplemented from lux::BxDF.
Definition at line 85 of file lafortune.cpp.
References lux::Dot(), exponent, f(), INV_PI, cimg_library::max(), nLobes, lux::Normalize(), lux::SameHemisphere(), lux::Vector::x, x, lux::Vector::y, y, lux::SWCSpectrum::y(), z, and lux::Vector::z.
Referenced by Sample_f().
SWCSpectrum Lafortune::Sample_f | ( | const Vector & | wi, | |
Vector * | sampled_f, | |||
float | u1, | |||
float | u2, | |||
float * | pdf, | |||
float * | pdfBack = NULL | |||
) | const [virtual] |
Reimplemented from lux::BxDF.
Definition at line 57 of file lafortune.cpp.
References lux::CoordinateSystem(), lux::CosineSampleHemisphere(), exponent, f(), M_PI, cimg_library::max(), nLobes, lux::Normalize(), Pdf(), lux::SameHemisphere(), lux::SphericalDirection(), lux::random::uintValue(), lux::Vector::x, x, lux::Vector::y, y, lux::SWCSpectrum::y(), z, and lux::Vector::z.
const SWCSpectrum * lux::Lafortune::exponent [private] |
u_int lux::Lafortune::nLobes [private] |
SWCSpectrum lux::Lafortune::R [private] |
const SWCSpectrum* lux::Lafortune::x [private] |
const SWCSpectrum * lux::Lafortune::y [private] |
const SWCSpectrum * lux::Lafortune::z [private] |