#include <infinite.h>

Public Member Functions | |
| InfiniteAreaLight (const Transform &light2world, const Spectrum &l, int ns, const string &texmap, float gain, float gamma) | |
| ~InfiniteAreaLight () | |
| SWCSpectrum | Power (const Scene *scene) const |
| bool | IsDeltaLight () const |
| SWCSpectrum | Le (const RayDifferential &r) const |
| SWCSpectrum | Sample_L (const Point &p, const Normal &n, float u1, float u2, float u3, Vector *wi, float *pdf, VisibilityTester *visibility) const |
| SWCSpectrum | Sample_L (const Point &p, float u1, float u2, float u3, Vector *wi, float *pdf, VisibilityTester *visibility) const |
| SWCSpectrum | Sample_L (const Scene *scene, float u1, float u2, float u3, float u4, Ray *ray, float *pdf) const |
| float | Pdf (const Point &, const Normal &, const Vector &) const |
| float | Pdf (const Point &, const Vector &) const |
| SWCSpectrum | Sample_L (const Point &P, Vector *w, VisibilityTester *visibility) const |
Static Public Member Functions | |
| static Light * | CreateLight (const Transform &light2world, const ParamSet ¶mSet) |
Private Attributes | |
| SPD * | SPDbase |
| Spectrum | Lbase |
| MIPMap< Spectrum > * | radianceMap |
Definition at line 35 of file infinite.h.
| InfiniteAreaLight::InfiniteAreaLight | ( | const Transform & | light2world, | |
| const Spectrum & | l, | |||
| int | ns, | |||
| const string & | texmap, | |||
| float | gain, | |||
| float | gamma | |||
| ) |
Definition at line 37 of file infinite.cpp.
References lux::BILINEAR, lux::ReadImage(), and lux::TEXTURE_REPEAT.
Referenced by CreateLight().
| InfiniteAreaLight::~InfiniteAreaLight | ( | ) |
| Light * InfiniteAreaLight::CreateLight | ( | const Transform & | light2world, | |
| const ParamSet & | paramSet | |||
| ) | [static] |
Definition at line 217 of file infinite.cpp.
References lux::ParamSet::FindOneFloat(), lux::ParamSet::FindOneInt(), lux::ParamSet::FindOneSpectrum(), lux::ParamSet::FindOneString(), InfiniteAreaLight(), and lux::Light::nSamples.
Referenced by lux::MakeLight().
| bool lux::InfiniteAreaLight::IsDeltaLight | ( | ) | const [inline, virtual] |
| SWCSpectrum InfiniteAreaLight::Le | ( | const RayDifferential & | r | ) | const [virtual] |
Reimplemented from lux::Light.
Definition at line 61 of file infinite.cpp.
References lux::Ray::d, INV_PI, INV_TWOPI, Lbase, lux::MIPMap< T >::Lookup(), lux::Normalize(), radianceMap, SPDbase, lux::SphericalPhi(), lux::SphericalTheta(), and lux::Light::WorldToLight.
Referenced by Sample_L().
| float InfiniteAreaLight::Pdf | ( | const Point & | , | |
| const Normal & | n, | |||
| const Vector & | wi | |||
| ) | const [virtual] |
Reimplemented from lux::Light.
Definition at line 125 of file infinite.cpp.
References lux::AbsDot(), and INV_TWOPI.
| SWCSpectrum lux::InfiniteAreaLight::Power | ( | const Scene * | scene | ) | const [inline, virtual] |
Implements lux::Light.
Definition at line 41 of file infinite.h.
References lux::BBox::BoundingSphere(), Lbase, lux::MIPMap< T >::Lookup(), M_PI, radianceMap, SPDbase, and lux::Scene::WorldBound().
| SWCSpectrum InfiniteAreaLight::Sample_L | ( | const Point & | P, | |
| Vector * | w, | |||
| VisibilityTester * | visibility | |||
| ) | const [virtual] |
Implements lux::Light.
Definition at line 209 of file infinite.cpp.
References lux::random::floatValue(), and Sample_L().
| SWCSpectrum InfiniteAreaLight::Sample_L | ( | const Scene * | scene, | |
| float | u1, | |||
| float | u2, | |||
| float | u3, | |||
| float | u4, | |||
| Ray * | ray, | |||
| float * | ||||
| ) | const [virtual] |
Implements lux::Light.
Definition at line 169 of file infinite.cpp.
References lux::AbsDot(), lux::BBox::BoundingSphere(), lux::Ray::d, lux::Dot(), lux::random::floatValue(), Floor2Int(), lux::Light::havePortalShape, INV_TWOPI, Le(), M_PI, lux::Normalize(), lux::Light::nrPortalShapes, lux::Ray::o, lux::Light::PortalShapes, lux::UniformSampleSphere(), and lux::Scene::WorldBound().
| SWCSpectrum InfiniteAreaLight::Sample_L | ( | const Point & | p, | |
| float | u1, | |||
| float | u2, | |||
| float | u3, | |||
| Vector * | wi, | |||
| float * | pdf, | |||
| VisibilityTester * | visibility | |||
| ) | const [virtual] |
Implements lux::Light.
Definition at line 129 of file infinite.cpp.
References lux::Dot(), lux::random::floatValue(), Floor2Int(), lux::Light::havePortalShape, Le(), lux::Normalize(), lux::Light::nrPortalShapes, lux::Light::PortalShapes, lux::VisibilityTester::SetRay(), lux::UniformSampleSphere(), and lux::UniformSpherePdf().
| SWCSpectrum InfiniteAreaLight::Sample_L | ( | const Point & | p, | |
| const Normal & | n, | |||
| float | u1, | |||
| float | u2, | |||
| float | u3, | |||
| Vector * | wi, | |||
| float * | pdf, | |||
| VisibilityTester * | visibility | |||
| ) | const [virtual] |
Reimplemented from lux::Light.
Definition at line 75 of file infinite.cpp.
References lux::ConcentricSampleDisk(), lux::CoordinateSystem(), lux::Dot(), Floor2Int(), lux::Light::havePortalShape, INV_TWOPI, Le(), cimg_library::cimg::max(), lux::Normalize(), lux::Light::nrPortalShapes, lux::Light::PortalShapes, lux::VisibilityTester::SetRay(), lux::Normal::x, lux::Vector::x, lux::Normal::y, lux::Vector::y, lux::Normal::z, and lux::Vector::z.
Referenced by Sample_L().
Spectrum lux::InfiniteAreaLight::Lbase [private] |
MIPMap<Spectrum>* lux::InfiniteAreaLight::radianceMap [private] |
SPD* lux::InfiniteAreaLight::SPDbase [private] |
1.5.9