The spica renderer
Public Member Functions | Protected Attributes | List of all members
spica::Light Class Referenceabstract

The base class for the lights. More...

#include <light.h>

Inheritance diagram for spica::Light:
spica::CObject spica::Uncopyable spica::AreaLight spica::Envmap

Public Member Functions

 Light (LightType type, const Transform &light2World, int numSamples=1)
 
LightType type () const
 
virtual Spectrum L (const Interaction &pLight, const Vector3d &dir) const
 
virtual Spectrum sampleLi (const Interaction &pObj, const Point2d &rands, Vector3d *dir, double *pdf, VisibilityTester *vis) const =0
 Sample incident radiance (Li) at the intersecting point. More...
 
virtual double pdfLi (const Interaction &pObj, const Vector3d &dir) const =0
 Compute PDF for the incident direction. More...
 
virtual Spectrum Le (const Ray &ray) const
 
virtual Spectrum sampleLe (const Point2d &rand1, const Point2d &rand2, Ray *ray, Normal3d *nLight, double *pdfPos, double *pdfDir) const =0
 
virtual void pdfLe (const Ray &ray, const Normal3d &nLight, double *pdfPos, double *pdfDir) const =0
 
virtual Spectrum power () const =0
 
virtual Lightclone () const =0
 
virtual bool isDelta () const
 
bool isArea () const
 

Protected Attributes

const LightType type_
 
const int numSamples_
 
const Transform lightToWorld_
 
const Transform worldToLight_
 

Detailed Description

The base class for the lights.

Member Function Documentation

virtual double spica::Light::pdfLi ( const Interaction pObj,
const Vector3d dir 
) const
pure virtual

Compute PDF for the incident direction.

Parameters
[in]isectThe intersecting point.
[in]inDirIncident direction.
Returns
PDF (probability density).

Implemented in spica::Envmap, and spica::AreaLight.

virtual Spectrum spica::Light::sampleLi ( const Interaction pObj,
const Point2d rands,
Vector3d dir,
double *  pdf,
VisibilityTester vis 
) const
pure virtual

Sample incident radiance (Li) at the intersecting point.

Parameters
[in]pObjThe intersecting point.
[in]randsA pair of real random numbers.
Returns
Sampled incident randiance.

Implemented in spica::Envmap, and spica::AreaLight.


The documentation for this class was generated from the following files: