#include <light.h>
Public Member Functions | |
virtual | ~Light () |
Light (const Transform &l2w, int ns=1) | |
virtual Spectrum | Sample_L (const Point &p, Vector *wi, VisibilityTester *vis) const =0 |
virtual Spectrum | Power (const Scene *) const =0 |
virtual bool | IsDeltaLight () const =0 |
virtual Spectrum | Le (const RayDifferential &r) const |
virtual Spectrum | Sample_L (const Point &p, float u1, float u2, Vector *wi, float *pdf, VisibilityTester *vis) const =0 |
virtual float | Pdf (const Point &p, const Vector &wi) const =0 |
virtual Spectrum | Sample_L (const Point &p, const Normal &n, float u1, float u2, Vector *wi, float *pdf, VisibilityTester *visibility) const |
virtual float | Pdf (const Point &p, const Normal &n, const Vector &wi) const |
virtual Spectrum | Sample_L (const Scene *scene, float u1, float u2, float u3, float u4, Ray *ray, float *pdf) const =0 |
Public Attributes | |
const int | nSamples |
Protected Attributes | |
const Transform | LightToWorld |
const Transform | WorldToLight |
Definition at line 34 of file light.h.
Light::Light | ( | const Transform & | l2w, | |
int | ns = 1 | |||
) | [inline] |
virtual Spectrum Light::Sample_L | ( | const Point & | p, | |
Vector * | wi, | |||
VisibilityTester * | vis | |||
) | const [pure virtual] |
Implemented in AreaLight, DistantLight, GonioPhotometricLight, InfiniteAreaLight, InfiniteAreaLightIS, PointLight, ProjectionLight, and SpotLight.
Referenced by EstimateDirect(), SingleScattering::Li(), PhotonIntegrator::Preprocess(), IGIIntegrator::Preprocess(), and ExPhotonIntegrator::Preprocess().
Implemented in AreaLight, DistantLight, GonioPhotometricLight, InfiniteAreaLight, InfiniteAreaLightIS, PointLight, ProjectionLight, and SpotLight.
virtual bool Light::IsDeltaLight | ( | ) | const [pure virtual] |
Implemented in AreaLight, DistantLight, GonioPhotometricLight, InfiniteAreaLight, InfiniteAreaLightIS, PointLight, ProjectionLight, and SpotLight.
Referenced by EstimateDirect().
Spectrum Light::Le | ( | const RayDifferential & | r | ) | const [virtual] |
Reimplemented in InfiniteAreaLight, and InfiniteAreaLightIS.
Definition at line 41 of file light.cpp.
Referenced by EstimateDirect().
virtual Spectrum Light::Sample_L | ( | const Point & | p, | |
float | u1, | |||
float | u2, | |||
Vector * | wi, | |||
float * | pdf, | |||
VisibilityTester * | vis | |||
) | const [pure virtual] |
Implemented in AreaLight, DistantLight, GonioPhotometricLight, InfiniteAreaLight, InfiniteAreaLightIS, PointLight, ProjectionLight, and SpotLight.
Implemented in AreaLight, DistantLight, GonioPhotometricLight, InfiniteAreaLight, InfiniteAreaLightIS, PointLight, ProjectionLight, and SpotLight.
Referenced by EstimateDirect().
virtual Spectrum Light::Sample_L | ( | const Point & | p, | |
const Normal & | n, | |||
float | u1, | |||
float | u2, | |||
Vector * | wi, | |||
float * | pdf, | |||
VisibilityTester * | visibility | |||
) | const [inline, virtual] |
virtual Spectrum Light::Sample_L | ( | const Scene * | scene, | |
float | u1, | |||
float | u2, | |||
float | u3, | |||
float | u4, | |||
Ray * | ray, | |||
float * | ||||
) | const [pure virtual] |
Implemented in AreaLight, DistantLight, GonioPhotometricLight, InfiniteAreaLight, InfiniteAreaLightIS, PointLight, ProjectionLight, and SpotLight.
const int Light::nSamples |
Definition at line 71 of file light.h.
Referenced by CreateAreaLight(), CreateLight(), PhotonIntegrator::RequestSamples(), IrradianceCache::RequestSamples(), IGIIntegrator::RequestSamples(), ExPhotonIntegrator::RequestSamples(), and DirectLighting::RequestSamples().
const Transform Light::LightToWorld [protected] |
Definition at line 74 of file light.h.
Referenced by DistantLight::DistantLight(), GonioPhotometricLight::GonioPhotometricLight(), PointLight::PointLight(), ProjectionLight::ProjectionLight(), SpotLight::Sample_L(), ProjectionLight::Sample_L(), InfiniteAreaLightIS::Sample_L(), and SpotLight::SpotLight().
const Transform Light::WorldToLight [protected] |
Definition at line 74 of file light.h.
Referenced by SpotLight::Falloff(), InfiniteAreaLightIS::Le(), InfiniteAreaLight::Le(), InfiniteAreaLightIS::Pdf(), ProjectionLight::Projection(), and GonioPhotometricLight::Scale().