#include <infinitesample.h>
Public Member Functions | |
| InfiniteAreaLightIS (const Transform &light2world, const RGBColor &power, int ns, const string &texmap) | |
| virtual | ~InfiniteAreaLightIS () |
| virtual SWCSpectrum | Power (const TsPack *tspack, const Scene *scene) const |
| virtual bool | IsDeltaLight () const |
| virtual bool | IsEnvironmental () const |
| virtual SWCSpectrum | Le (const TsPack *tspack, const RayDifferential &r) const |
| virtual SWCSpectrum | Sample_L (const TsPack *tspack, const Point &p, float u1, float u2, float u3, Vector *wi, float *pdf, VisibilityTester *visibility) const |
| virtual SWCSpectrum | Sample_L (const TsPack *tspack, const Scene *scene, float u1, float u2, float u3, float u4, Ray *ray, float *pdf) const |
| virtual float | Pdf (const Point &, const Vector &) const |
| virtual float | Pdf (const Point &p, const Normal &n, const Point &po, const Normal &ns) const |
Static Public Member Functions | |
| static Light * | CreateLight (const Transform &light2world, const ParamSet ¶mSet, const TextureParams &tp) |
Private Attributes | |
| RGBColor | Lbase |
| MIPMap< RGBColor > * | radianceMap |
| Distribution1D * | uDistrib |
| Distribution1D ** | vDistribs |
Definition at line 34 of file infinitesample.h.
| InfiniteAreaLightIS::InfiniteAreaLightIS | ( | const Transform & | light2world, | |
| const RGBColor & | power, | |||
| int | ns, | |||
| const string & | texmap | |||
| ) |
Definition at line 39 of file infinitesample.cpp.
References M_PI, cimg_library::cimg::max(), lux::ReadImage(), and cimg_library::sin().
Referenced by CreateLight().
| InfiniteAreaLightIS::~InfiniteAreaLightIS | ( | ) | [virtual] |
Definition at line 35 of file infinitesample.cpp.
References radianceMap.
| Light * InfiniteAreaLightIS::CreateLight | ( | const Transform & | light2world, | |
| const ParamSet & | paramSet, | |||
| const TextureParams & | tp | |||
| ) | [static] |
Definition at line 170 of file infinitesample.cpp.
References lux::ParamSet::FindOneInt(), lux::ParamSet::FindOneRGBColor(), lux::ParamSet::FindOneString(), InfiniteAreaLightIS(), and lux::Light::nSamples.
| virtual bool lux::InfiniteAreaLightIS::IsDeltaLight | ( | ) | const [inline, virtual] |
Implements lux::Light.
Definition at line 48 of file infinitesample.h.
| virtual bool lux::InfiniteAreaLightIS::IsEnvironmental | ( | ) | const [inline, virtual] |
Implements lux::Light.
Definition at line 49 of file infinitesample.h.
| SWCSpectrum InfiniteAreaLightIS::Le | ( | const TsPack * | tspack, | |
| const RayDifferential & | r | |||
| ) | const [virtual] |
Reimplemented from lux::Light.
Definition at line 88 of file infinitesample.cpp.
References lux::Ray::d, INV_PI, INV_TWOPI, Lbase, lux::MIPMap< T >::Lookup(), lux::Normalize(), radianceMap, lux::SphericalPhi(), lux::SphericalTheta(), and lux::Light::WorldToLight.
Referenced by Sample_L().
| float InfiniteAreaLightIS::Pdf | ( | const Point & | p, | |
| const Normal & | n, | |||
| const Point & | po, | |||
| const Normal & | ns | |||
| ) | const [virtual] |
Implements lux::Light.
Definition at line 134 of file infinitesample.cpp.
References lux::AbsDot(), Clamp(), lux::Distribution1D::count, lux::DistanceSquared(), Float2Int(), lux::Distribution1D::func, lux::Distribution1D::funcInt, INV_PI, INV_TWOPI, M_PI, lux::Normalize(), cimg_library::sin(), lux::SphericalPhi(), lux::SphericalTheta(), uDistrib, vDistribs, and lux::Light::WorldToLight.
Implements lux::Light.
Definition at line 122 of file infinitesample.cpp.
References Clamp(), lux::Distribution1D::count, Float2Int(), lux::Distribution1D::func, lux::Distribution1D::funcInt, INV_PI, INV_TWOPI, M_PI, cimg_library::sin(), lux::SphericalPhi(), lux::SphericalTheta(), uDistrib, vDistribs, and lux::Light::WorldToLight.
| virtual SWCSpectrum lux::InfiniteAreaLightIS::Power | ( | const TsPack * | tspack, | |
| const Scene * | scene | |||
| ) | const [inline, virtual] |
Implements lux::Light.
Definition at line 40 of file infinitesample.h.
References lux::BBox::BoundingSphere(), Lbase, lux::MIPMap< T >::Lookup(), M_PI, radianceMap, and lux::Scene::WorldBound().
| SWCSpectrum InfiniteAreaLightIS::Sample_L | ( | const TsPack * | tspack, | |
| const Scene * | scene, | |||
| float | u1, | |||
| float | u2, | |||
| float | u3, | |||
| float | u4, | |||
| Ray * | ray, | |||
| float * | ||||
| ) | const [virtual] |
Implements lux::Light.
Definition at line 147 of file infinitesample.cpp.
References lux::AbsDot(), lux::BBox::BoundingSphere(), lux::Ray::d, Le(), M_PI, lux::Normalize(), lux::Ray::o, lux::UniformSampleSphere(), and lux::Scene::WorldBound().
| SWCSpectrum InfiniteAreaLightIS::Sample_L | ( | const TsPack * | tspack, | |
| const Point & | p, | |||
| float | u1, | |||
| float | u2, | |||
| float | u3, | |||
| Vector * | wi, | |||
| float * | pdf, | |||
| VisibilityTester * | visibility | |||
| ) | const [virtual] |
Implements lux::Light.
Definition at line 100 of file infinitesample.cpp.
References Clamp(), cimg_library::cos(), lux::Distribution1D::count, Float2Int(), lux::Distribution1D::invCount, Lbase, lux::Light::LightToWorld, lux::MIPMap< T >::Lookup(), M_PI, radianceMap, lux::Distribution1D::Sample(), lux::VisibilityTester::SetRay(), cimg_library::sin(), lux::TsPack::time, uDistrib, and vDistribs.
RGBColor lux::InfiniteAreaLightIS::Lbase [private] |
Definition at line 64 of file infinitesample.h.
Referenced by Le(), Power(), and Sample_L().
MIPMap<RGBColor>* lux::InfiniteAreaLightIS::radianceMap [private] |
Definition at line 65 of file infinitesample.h.
Referenced by Le(), Power(), Sample_L(), and ~InfiniteAreaLightIS().
Distribution1D* lux::InfiniteAreaLightIS::uDistrib [private] |
Definition at line 66 of file infinitesample.h.
Referenced by Pdf(), and Sample_L().
Distribution1D ** lux::InfiniteAreaLightIS::vDistribs [private] |
Definition at line 66 of file infinitesample.h.
Referenced by Pdf(), and Sample_L().
1.6.2-20100208