
Public Member Functions | |
| InfiniteAreaLight (const Transform &light2world, const Spectrum &power, int ns, const string &texmap) | |
| ~InfiniteAreaLight () | |
| Spectrum | Power (const Scene *scene) const |
| bool | IsDeltaLight () const |
| Spectrum | Le (const RayDifferential &r) const |
| Spectrum | Sample_L (const Point &p, const Normal &n, float u1, float u2, Vector *wi, float *pdf, VisibilityTester *visibility) 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 Normal &, const Vector &) 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 |
Definition at line 32 of file infinite.cpp.
| InfiniteAreaLight::InfiniteAreaLight | ( | const Transform & | light2world, | |
| const Spectrum & | power, | |||
| int | ns, | |||
| const string & | texmap | |||
| ) |
Definition at line 67 of file infinite.cpp.
References Lbase, radianceMap, and ReadImage().
Referenced by CreateLight().
| InfiniteAreaLight::~InfiniteAreaLight | ( | ) |
Implements Light.
Definition at line 37 of file infinite.cpp.
References BBox::BoundingSphere(), Lbase, MIPMap< T >::Lookup(), M_PI, radianceMap, and Scene::WorldBound().
| bool InfiniteAreaLight::IsDeltaLight | ( | ) | const [inline, virtual] |
| Spectrum InfiniteAreaLight::Le | ( | const RayDifferential & | r | ) | const [virtual] |
Reimplemented from Light.
Definition at line 84 of file infinite.cpp.
References Ray::d, INV_PI, INV_TWOPI, Lbase, MIPMap< T >::Lookup(), Normalize(), radianceMap, SphericalPhi(), SphericalTheta(), and Light::WorldToLight.
Referenced by Sample_L().
| Spectrum InfiniteAreaLight::Sample_L | ( | const Point & | p, | |
| const Normal & | n, | |||
| float | u1, | |||
| float | u2, | |||
| Vector * | wi, | |||
| float * | pdf, | |||
| VisibilityTester * | visibility | |||
| ) | const [virtual] |
Reimplemented from Light.
Definition at line 96 of file infinite.cpp.
References ConcentricSampleDisk(), CoordinateSystem(), INV_TWOPI, Le(), Normalize(), RandomFloat(), VisibilityTester::SetRay(), Normal::x, Vector::x, Normal::y, Vector::y, Normal::z, and Vector::z.
Referenced by Sample_L().
| Spectrum InfiniteAreaLight::Sample_L | ( | const Point & | p, | |
| float | u1, | |||
| float | u2, | |||
| Vector * | wi, | |||
| float * | pdf, | |||
| VisibilityTester * | visibility | |||
| ) | const [virtual] |
Implements Light.
Definition at line 121 of file infinite.cpp.
References Le(), VisibilityTester::SetRay(), UniformSampleSphere(), and UniformSpherePdf().
| Spectrum InfiniteAreaLight::Sample_L | ( | const Scene * | scene, | |
| float | u1, | |||
| float | u2, | |||
| float | u3, | |||
| float | u4, | |||
| Ray * | ray, | |||
| float * | ||||
| ) | const [virtual] |
Implements Light.
Definition at line 132 of file infinite.cpp.
References AbsDot(), BBox::BoundingSphere(), Ray::d, Le(), M_PI, Normalize(), Ray::o, UniformSampleSphere(), and Scene::WorldBound().
| float InfiniteAreaLight::Pdf | ( | const Point & | , | |
| const Normal & | n, | |||
| const Vector & | wi | |||
| ) | const [virtual] |
| Spectrum InfiniteAreaLight::Sample_L | ( | const Point & | P, | |
| Vector * | w, | |||
| VisibilityTester * | visibility | |||
| ) | const [virtual] |
Implements Light.
Definition at line 155 of file infinite.cpp.
References RandomFloat(), and Sample_L().
Spectrum InfiniteAreaLight::Lbase [private] |
MIPMap<Spectrum>* InfiniteAreaLight::radianceMap [private] |
Definition at line 60 of file infinite.cpp.
Referenced by InfiniteAreaLight(), Le(), Power(), and ~InfiniteAreaLight().
1.5.6