Public Member Functions | |
SkyPortalBxDF (const SkyLight &sky, const Transform &WL, const Vector &x, const Vector &y, const Vector &z, const Point &p, const vector< boost::shared_ptr< Primitive > > &portalList, u_int portal, float u) | |
virtual | ~SkyPortalBxDF () |
virtual bool | Sample_f (const TsPack *tspack, const Vector &wo, Vector *wi, float u1, float u2, SWCSpectrum *const f, float *pdf, float *pdfBack=NULL, bool reverse=false) const |
virtual void | f (const TsPack *tspack, const Vector &wo, const Vector &wi, SWCSpectrum *const f) const |
virtual float | Pdf (const TsPack *tspack, const Vector &wi, const Vector &wo) const |
Private Attributes | |
const SkyLight & | skyLight |
const Transform & | WorldToLight |
Vector | X |
Vector | Y |
Vector | Z |
Point | ps |
const vector < boost::shared_ptr< Primitive > > & | PortalShapes |
u_int | shapeIndex |
float | u3 |
Definition at line 57 of file sky.cpp.
virtual void SkyPortalBxDF::f | ( | const TsPack * | tspack, | |
const Vector & | wo, | |||
const Vector & | wi, | |||
SWCSpectrum *const | f | |||
) | const [inline, virtual] |
Evaluates the BxDF. Accumulates the result in the f parameter.
Implements lux::BxDF.
Definition at line 93 of file sky.cpp.
References lux::SkyLight::GetSkySpectralRadiance(), lux::Normalize(), skyLight, lux::SphericalPhi(), lux::SphericalTheta(), WorldToLight, X, lux::Vector::x, Y, lux::Vector::y, Z, and lux::Vector::z.
virtual float SkyPortalBxDF::Pdf | ( | const TsPack * | tspack, | |
const Vector & | wi, | |||
const Vector & | wo | |||
) | const [inline, virtual] |
Reimplemented from lux::BxDF.
Definition at line 102 of file sky.cpp.
References lux::AbsDot(), lux::Intersection::dg, lux::DistanceSquared(), lux::Dot(), lux::Ray::mint, lux::DifferentialGeometry::nn, lux::DifferentialGeometry::p, PortalShapes, ps, X, lux::Vector::x, Y, lux::Vector::y, Z, and lux::Vector::z.
virtual bool SkyPortalBxDF::Sample_f | ( | const TsPack * | tspack, | |
const Vector & | wo, | |||
Vector * | wi, | |||
float | u1, | |||
float | u2, | |||
SWCSpectrum *const | f, | |||
float * | pdf, | |||
float * | pdfBack = NULL , |
|||
bool | reverse = false | |||
) | const [inline, virtual] |
Samples the BxDF. Returns the result of the BxDF for the sampled direction in f.
Reimplemented from lux::BxDF.
Definition at line 62 of file sky.cpp.
References lux::AbsDot(), lux::Intersection::dg, lux::DistanceSquared(), lux::Dot(), lux::SkyLight::GetSkySpectralRadiance(), lux::Ray::mint, lux::DifferentialGeometry::nn, lux::Normalize(), lux::DifferentialGeometry::p, PortalShapes, ps, cimg_library::reverse(), shapeIndex, skyLight, lux::SphericalPhi(), lux::SphericalTheta(), lux::TsPack::time, lux::DifferentialGeometry::time, u3, WorldToLight, X, lux::Vector::x, Y, lux::Vector::y, Z, and lux::Vector::z.
const vector<boost::shared_ptr<Primitive> >& SkyPortalBxDF::PortalShapes [private] |
Definition at line 120 of file sky.cpp.
Referenced by Pdf(), and Sample_f().
Point SkyPortalBxDF::ps [private] |
Definition at line 119 of file sky.cpp.
Referenced by Pdf(), and Sample_f().
u_int SkyPortalBxDF::shapeIndex [private] |
Definition at line 121 of file sky.cpp.
Referenced by Sample_f().
const SkyLight& SkyPortalBxDF::skyLight [private] |
Definition at line 116 of file sky.cpp.
Referenced by f(), and Sample_f().
float SkyPortalBxDF::u3 [private] |
Definition at line 122 of file sky.cpp.
Referenced by Sample_f().
const Transform& SkyPortalBxDF::WorldToLight [private] |
Definition at line 117 of file sky.cpp.
Referenced by f(), and Sample_f().
Vector SkyPortalBxDF::X [private] |
Definition at line 118 of file sky.cpp.
Referenced by f(), Pdf(), and Sample_f().
Vector SkyPortalBxDF::Y [private] |
Definition at line 118 of file sky.cpp.
Referenced by f(), Pdf(), and Sample_f().
Vector SkyPortalBxDF::Z [private] |
Definition at line 118 of file sky.cpp.
Referenced by f(), Pdf(), and Sample_f().