Public Member Functions | |
InfiniteAreaLightIS (const Transform &light2world, const Spectrum &power, int ns, const string &texmap) | |
~InfiniteAreaLightIS () | |
Spectrum | Power (const Scene *scene) const |
bool | IsDeltaLight () const |
Spectrum | Le (const RayDifferential &r) const |
Spectrum | Sample_L (const Point &p, float u1, float u2, Vector *wi, float *pdf, VisibilityTester *visibility) const |
Spectrum | Sample_L (const Scene *scene, float u1, float u2, float u3, float u4, Ray *ray, float *pdf) const |
float | Pdf (const Point &, const Vector &) const |
Spectrum | Sample_L (const Point &P, Vector *w, VisibilityTester *visibility) const |
Private Attributes | |
Spectrum | Lbase |
MIPMap< Spectrum > * | radianceMap |
Distribution1D * | uDistrib |
Distribution1D ** | vDistribs |
Definition at line 58 of file infinitesample.cpp.
InfiniteAreaLightIS::InfiniteAreaLightIS | ( | const Transform & | light2world, | |
const Spectrum & | power, | |||
int | ns, | |||
const string & | texmap | |||
) |
Definition at line 93 of file infinitesample.cpp.
References Lbase, MIPMap< T >::Lookup(), M_PI, radianceMap, ReadImage(), uDistrib, vDistribs, and Spectrum::y().
Referenced by CreateLight().
InfiniteAreaLightIS::~InfiniteAreaLightIS | ( | ) |
Implements Light.
Definition at line 64 of file infinitesample.cpp.
References BBox::BoundingSphere(), Lbase, MIPMap< T >::Lookup(), M_PI, radianceMap, and Scene::WorldBound().
bool InfiniteAreaLightIS::IsDeltaLight | ( | ) | const [inline, virtual] |
Spectrum InfiniteAreaLightIS::Le | ( | const RayDifferential & | r | ) | const [virtual] |
Reimplemented from Light.
Definition at line 139 of file infinitesample.cpp.
References Ray::d, INV_PI, INV_TWOPI, Lbase, MIPMap< T >::Lookup(), Normalize(), radianceMap, SphericalPhi(), SphericalTheta(), and Light::WorldToLight.
Referenced by Sample_L().
Spectrum InfiniteAreaLightIS::Sample_L | ( | const Point & | p, | |
float | u1, | |||
float | u2, | |||
Vector * | wi, | |||
float * | pdf, | |||
VisibilityTester * | visibility | |||
) | const [virtual] |
Implements Light.
Definition at line 151 of file infinitesample.cpp.
References Clamp(), Distribution1D::count, Float2Int(), Distribution1D::invCount, Lbase, Light::LightToWorld, MIPMap< T >::Lookup(), M_PI, radianceMap, Distribution1D::Sample(), VisibilityTester::SetRay(), uDistrib, and vDistribs.
Referenced by Sample_L().
Spectrum InfiniteAreaLightIS::Sample_L | ( | const Scene * | scene, | |
float | u1, | |||
float | u2, | |||
float | u3, | |||
float | u4, | |||
Ray * | ray, | |||
float * | ||||
) | const [virtual] |
Implements Light.
Definition at line 185 of file infinitesample.cpp.
References AbsDot(), BBox::BoundingSphere(), Ray::d, Le(), M_PI, Normalize(), Ray::o, UniformSampleSphere(), and Scene::WorldBound().
Implements Light.
Definition at line 173 of file infinitesample.cpp.
References Clamp(), Distribution1D::count, Float2Int(), Distribution1D::func, Distribution1D::funcInt, INV_PI, INV_TWOPI, M_PI, SphericalPhi(), SphericalTheta(), uDistrib, vDistribs, and Light::WorldToLight.
Spectrum InfiniteAreaLightIS::Sample_L | ( | const Point & | P, | |
Vector * | w, | |||
VisibilityTester * | visibility | |||
) | const [virtual] |
Implements Light.
Definition at line 208 of file infinitesample.cpp.
References RandomFloat(), and Sample_L().
Spectrum InfiniteAreaLightIS::Lbase [private] |
Definition at line 83 of file infinitesample.cpp.
Referenced by InfiniteAreaLightIS(), Le(), Power(), and Sample_L().
MIPMap<Spectrum>* InfiniteAreaLightIS::radianceMap [private] |
Definition at line 84 of file infinitesample.cpp.
Referenced by InfiniteAreaLightIS(), Le(), Power(), Sample_L(), and ~InfiniteAreaLightIS().
Distribution1D* InfiniteAreaLightIS::uDistrib [private] |
Definition at line 85 of file infinitesample.cpp.
Referenced by InfiniteAreaLightIS(), Pdf(), and Sample_L().
Distribution1D ** InfiniteAreaLightIS::vDistribs [private] |
Definition at line 85 of file infinitesample.cpp.
Referenced by InfiniteAreaLightIS(), Pdf(), and Sample_L().