The spica renderer
Public Member Functions | Protected Attributes | List of all members
spica::AreaLight Class Reference

Area light class. More...

#include <area.h>

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

Public Member Functions

 AreaLight (const std::shared_ptr< Shape > &shape, const Transform &lightToWorld, const Spectrum &Lemit, int numSamples=1)
 
 AreaLight (RenderParams &params)
 
Spectrum L (const Interaction &pLight, const Vector3d &dir) const override
 
Spectrum sampleLi (const Interaction &isect, const Point2d &rands, Vector3d *dir, double *pdf, VisibilityTester *vis) const override
 Sample incident radiance (Li) at the intersecting point. More...
 
double pdfLi (const Interaction &pObj, const Vector3d &dir) const override
 Compute PDF for the incident direction. More...
 
Spectrum sampleLe (const Point2d &rand1, const Point2d &rand2, Ray *ray, Normal3d *nLight, double *pdfPos, double *pdfDir) const override
 
void pdfLe (const Ray &ray, const Normal3d &nLight, double *pdfPos, double *pdfDir) const override
 
Spectrum power () const override
 
Lightclone () const override
 
double area () const
 
- Public Member Functions inherited from spica::Light
 Light (LightType type, const Transform &light2World, int numSamples=1)
 
LightType type () const
 
virtual Spectrum Le (const Ray &ray) const
 
virtual bool isDelta () const
 
bool isArea () const
 

Protected Attributes

std::shared_ptr< Shapeshape_
 
const Spectrum Lemit_
 
- Protected Attributes inherited from spica::Light
const LightType type_
 
const int numSamples_
 
const Transform lightToWorld_
 
const Transform worldToLight_
 

Detailed Description

Area light class.

Member Function Documentation

double spica::AreaLight::pdfLi ( const Interaction pObj,
const Vector3d dir 
) const
overridevirtual

Compute PDF for the incident direction.

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

Implements spica::Light.

Spectrum spica::AreaLight::sampleLi ( const Interaction pObj,
const Point2d rands,
Vector3d dir,
double *  pdf,
VisibilityTester vis 
) const
overridevirtual

Sample incident radiance (Li) at the intersecting point.

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

Implements spica::Light.


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