#include <light.h>

Public Member Functions | |
| virtual | ~Light () |
| Light (const Transform &l2w, int ns=1) | |
| virtual SWCSpectrum | Sample_L (const Point &p, Vector *wi, VisibilityTester *vis) const =0 |
| virtual SWCSpectrum | Power (const Scene *) const =0 |
| virtual bool | IsDeltaLight () const =0 |
| virtual SWCSpectrum | Le (const RayDifferential &r) const |
| virtual SWCSpectrum | Le (const Scene *scene, const Ray &r, const Normal &n, BSDF **bsdf, float *pdf, float *pdfDirect) const |
| virtual SWCSpectrum | Sample_L (const Point &p, float u1, float u2, float u3, Vector *wi, float *pdf, VisibilityTester *vis) const =0 |
| virtual float | Pdf (const Point &p, const Vector &wi) const =0 |
| virtual SWCSpectrum | Sample_L (const Point &p, const Normal &n, float u1, float u2, float u3, Vector *wi, float *pdf, VisibilityTester *visibility) const |
| virtual float | Pdf (const Point &p, const Normal &n, const Vector &wi) const |
| virtual SWCSpectrum | Sample_L (const Scene *scene, float u1, float u2, float u3, float u4, Ray *ray, float *pdf) const =0 |
| virtual SWCSpectrum | Sample_L (const Scene *scene, float u1, float u2, BSDF **bsdf, float *pdf) const |
| virtual SWCSpectrum | Sample_L (const Scene *scene, const Point &p, const Normal &n, float u1, float u2, float u3, BSDF **bsdf, float *pdf, float *pdfDirect, VisibilityTester *visibility) const |
| virtual float | Pdf (const Scene *scene, const Point &p) const |
| void | AddPortalShape (boost::shared_ptr< Shape > shape) |
| virtual void | SamplePosition (float u1, float u2, Point *p, Normal *n, float *pdf) const |
| virtual void | SampleDirection (float u1, float u2, const Normal &nn, Vector *wo, float *pdf) const |
| virtual float | EvalPositionPdf (const Point p, const Normal &n, const Vector &w) const |
| virtual float | EvalDirectionPdf (const Point p, const Normal &n, const Vector &w) const |
| virtual SWCSpectrum | Eval (const Normal &n, const Vector &w) const |
Public Attributes | |
| const int | nSamples |
| bool | havePortalShape |
| int | nrPortalShapes |
| vector< boost::shared_ptr < Shape > > | PortalShapes |
| float | PortalArea |
Protected Attributes | |
| const Transform | LightToWorld |
| const Transform | WorldToLight |
Definition at line 36 of file light.h.
| lux::Light::Light | ( | const Transform & | l2w, | |
| int | ns = 1 | |||
| ) | [inline] |
Definition at line 40 of file light.h.
References lux::Transform::HasScale(), havePortalShape, LUX_UNIMPLEMENT, LUX_WARNING, luxError, nrPortalShapes, PortalArea, and WorldToLight.
| void Light::AddPortalShape | ( | boost::shared_ptr< Shape > | shape | ) |
Definition at line 72 of file light.cpp.
References havePortalShape, nrPortalShapes, PortalArea, and PortalShapes.
Referenced by lux::Context::portalShape().
| virtual SWCSpectrum lux::Light::Eval | ( | const Normal & | n, | |
| const Vector & | w | |||
| ) | const [inline, virtual] |
Reimplemented in lux::AreaLight.
Definition at line 97 of file light.h.
References LUX_BUG, LUX_SEVERE, and luxError.
Referenced by lux::ParticleTracingIntegrator::Li().
| virtual float lux::Light::EvalDirectionPdf | ( | const Point | p, | |
| const Normal & | n, | |||
| const Vector & | w | |||
| ) | const [inline, virtual] |
Reimplemented in lux::AreaLight.
Definition at line 92 of file light.h.
References LUX_BUG, LUX_SEVERE, and luxError.
| virtual float lux::Light::EvalPositionPdf | ( | const Point | p, | |
| const Normal & | n, | |||
| const Vector & | w | |||
| ) | const [inline, virtual] |
Reimplemented in lux::AreaLight.
Definition at line 87 of file light.h.
References LUX_BUG, LUX_SEVERE, and luxError.
| virtual bool lux::Light::IsDeltaLight | ( | ) | const [pure virtual] |
Implemented in lux::AreaLight, lux::DistantLight, lux::GonioPhotometricLight, lux::InfiniteAreaLight, lux::InfiniteAreaLightIS, lux::PointLight, lux::ProjectionLight, lux::SkyLight, lux::SpotLight, and lux::SunLight.
Referenced by lux::EstimateDirect().
| SWCSpectrum Light::Le | ( | const Scene * | scene, | |
| const Ray & | r, | |||
| const Normal & | n, | |||
| BSDF ** | bsdf, | |||
| float * | pdf, | |||
| float * | pdfDirect | |||
| ) | const [virtual] |
| SWCSpectrum Light::Le | ( | const RayDifferential & | r | ) | const [virtual] |
Reimplemented in lux::InfiniteAreaLight, lux::InfiniteAreaLightIS, lux::SkyLight, and lux::SunLight.
Definition at line 63 of file light.cpp.
Referenced by lux::EstimateDirect(), and lux::BidirIntegrator::Li().
Reimplemented in lux::AreaLight.
Definition at line 75 of file light.h.
References LUX_BUG, LUX_SEVERE, and luxError.
| virtual float lux::Light::Pdf | ( | const Point & | p, | |
| const Normal & | n, | |||
| const Vector & | wi | |||
| ) | const [inline, virtual] |
Reimplemented in lux::AreaLight, lux::InfiniteAreaLight, and lux::SkyLight.
Definition at line 66 of file light.h.
References Pdf().
Implemented in lux::AreaLight, lux::DistantLight, lux::GonioPhotometricLight, lux::InfiniteAreaLight, lux::InfiniteAreaLightIS, lux::PointLight, lux::ProjectionLight, lux::SkyLight, lux::SpotLight, and lux::SunLight.
Referenced by lux::EstimateDirect(), and Pdf().
| virtual SWCSpectrum lux::Light::Power | ( | const Scene * | ) | const [pure virtual] |
| virtual SWCSpectrum lux::Light::Sample_L | ( | const Scene * | scene, | |
| const Point & | p, | |||
| const Normal & | n, | |||
| float | u1, | |||
| float | u2, | |||
| float | u3, | |||
| BSDF ** | bsdf, | |||
| float * | pdf, | |||
| float * | pdfDirect, | |||
| VisibilityTester * | visibility | |||
| ) | const [inline, virtual] |
Reimplemented in lux::AreaLight, lux::SkyLight, and lux::SunLight.
Definition at line 74 of file light.h.
References LUX_BUG, LUX_SEVERE, and luxError.
| virtual SWCSpectrum lux::Light::Sample_L | ( | const Scene * | scene, | |
| float | u1, | |||
| float | u2, | |||
| BSDF ** | bsdf, | |||
| float * | ||||
| ) | const [inline, virtual] |
Reimplemented in lux::AreaLight, lux::SkyLight, and lux::SunLight.
Definition at line 73 of file light.h.
References LUX_BUG, LUX_SEVERE, and luxError.
| virtual SWCSpectrum lux::Light::Sample_L | ( | const Scene * | scene, | |
| float | u1, | |||
| float | u2, | |||
| float | u3, | |||
| float | u4, | |||
| Ray * | ray, | |||
| float * | ||||
| ) | const [pure virtual] |
| virtual SWCSpectrum lux::Light::Sample_L | ( | const Point & | p, | |
| const Normal & | n, | |||
| float | u1, | |||
| float | u2, | |||
| float | u3, | |||
| Vector * | wi, | |||
| float * | pdf, | |||
| VisibilityTester * | visibility | |||
| ) | const [inline, virtual] |
Reimplemented in lux::AreaLight, lux::InfiniteAreaLight, and lux::SkyLight.
Definition at line 61 of file light.h.
References Sample_L().
| virtual SWCSpectrum lux::Light::Sample_L | ( | const Point & | p, | |
| float | u1, | |||
| float | u2, | |||
| float | u3, | |||
| Vector * | wi, | |||
| float * | pdf, | |||
| VisibilityTester * | vis | |||
| ) | const [pure virtual] |
| virtual SWCSpectrum lux::Light::Sample_L | ( | const Point & | p, | |
| Vector * | wi, | |||
| VisibilityTester * | vis | |||
| ) | const [pure virtual] |
Implemented in lux::AreaLight, lux::DistantLight, lux::GonioPhotometricLight, lux::InfiniteAreaLight, lux::InfiniteAreaLightIS, lux::PointLight, lux::ProjectionLight, lux::SkyLight, lux::SpotLight, and lux::SunLight.
Referenced by lux::EstimateDirect(), lux::SingleScattering::Li(), lux::BidirIntegrator::Li(), lux::PhotonIntegrator::Preprocess(), lux::IGIIntegrator::Preprocess(), lux::ExPhotonIntegrator::Preprocess(), and Sample_L().
| virtual void lux::Light::SampleDirection | ( | float | u1, | |
| float | u2, | |||
| const Normal & | nn, | |||
| Vector * | wo, | |||
| float * | ||||
| ) | const [inline, virtual] |
Reimplemented in lux::AreaLight.
Definition at line 83 of file light.h.
References LUX_BUG, LUX_SEVERE, and luxError.
Referenced by lux::ParticleTracingIntegrator::Li().
| virtual void lux::Light::SamplePosition | ( | float | u1, | |
| float | u2, | |||
| Point * | p, | |||
| Normal * | n, | |||
| float * | ||||
| ) | const [inline, virtual] |
Reimplemented in lux::AreaLight.
Definition at line 79 of file light.h.
References LUX_BUG, LUX_SEVERE, and luxError.
Referenced by lux::ParticleTracingIntegrator::Li().
Definition at line 105 of file light.h.
Referenced by AddPortalShape(), Light(), lux::SkyLight::Sample_L(), and lux::InfiniteAreaLight::Sample_L().
const Transform lux::Light::LightToWorld [protected] |
Definition at line 111 of file light.h.
Referenced by lux::DistantLight::DistantLight(), lux::GonioPhotometricLight::GonioPhotometricLight(), lux::PointLight::PointLight(), lux::ProjectionLight::ProjectionLight(), lux::SpotLight::Sample_L(), lux::ProjectionLight::Sample_L(), lux::InfiniteAreaLightIS::Sample_L(), lux::SpotLight::SpotLight(), and lux::SunLight::SunLight().
Definition at line 106 of file light.h.
Referenced by AddPortalShape(), Light(), lux::SkyLight::Sample_L(), and lux::InfiniteAreaLight::Sample_L().
| const int lux::Light::nSamples |
Definition at line 104 of file light.h.
Referenced by lux::AreaLight::CreateAreaLight(), lux::SunLight::CreateLight(), lux::SkyLight::CreateLight(), lux::InfiniteAreaLightIS::CreateLight(), lux::InfiniteAreaLight::CreateLight(), lux::PhotonIntegrator::RequestSamples(), lux::IrradianceCache::RequestSamples(), and lux::IGIIntegrator::RequestSamples().
| float lux::Light::PortalArea |
| vector<boost::shared_ptr<Shape> > lux::Light::PortalShapes |
Definition at line 107 of file light.h.
Referenced by AddPortalShape(), lux::SkyLight::Sample_L(), and lux::InfiniteAreaLight::Sample_L().
const Transform lux::Light::WorldToLight [protected] |
Definition at line 111 of file light.h.
Referenced by lux::SpotLight::Falloff(), lux::SkyLight::Le(), lux::InfiniteAreaLightIS::Le(), lux::InfiniteAreaLight::Le(), Light(), lux::InfiniteAreaLightIS::Pdf(), lux::ProjectionLight::Projection(), lux::SkyLight::Sample_L(), and lux::GonioPhotometricLight::Scale().
1.5.9