#include <iarealight.h>
Inheritance diagram for toxic::IAreaLight:

Public Member Functions | |
| IAreaLight (const sheep::Matrix4 &m, const ISurfaceShader *surface_shader, IntersectionMask intersection_mask=INTERSECT_ALL_RAYS) | |
| m is the object space to world space transformation matrix. | |
| virtual | ~IAreaLight () |
| virtual void | Finalize (const Context &context) |
| virtual const Color3 & | GetPower () const |
| Returns the emission power of this object, expressed in W. | |
| virtual Ray | GeneratePhotonRay (const Context &context) const |
| virtual void | ComputeIrradiance (const Context &context, const Scene *scene, const sheep::Point3 &point, const sheep::Vector3 &geometric_normal, const sheep::Vector3 &shading_normal, const ISurfaceSampler::SampleVector &input, IrradianceSampleVector *output) const |
Protected Attributes | |
| sheep::Real | m_surface_area |
| Cached value of the surface area of this object, expressed in m^2. | |
| Color3 | m_power |
| Emission power of this object, expressed in W. | |
|
||||||||||||||||
|
m is the object space to world space transformation matrix.
Definition at line 44 of file iarealight.cpp. |
|
|
Definition at line 51 of file iarealight.h. |
|
||||||||||||||||||||||||||||||||
|
Computes irradiance due to this light source. The point and the surface normal are both expressed in world space.
Implements toxic::ILight. Reimplemented in toxic::Sphere. Definition at line 89 of file iarealight.cpp. References toxic::Scene::ArePointsMutuallyVisible(), toxic::IBoundedObject::EvaluateSurface(), toxic::ISurfaceShader::GetEDF(), toxic::IEDF::GetEmittedRadiance(), toxic::ISurfaceShader::GetRadiantExitance(), toxic::IObject::GetSurfaceShader(), sheep::Vector3::IsUnitLength(), toxic::Statistics::m_shadow_rays, toxic::Context::m_statistics, m_surface_area, toxic::ISurfaceSampler::SampleVector, and sheep::Vector3::SquareNorm(). |
|
|
This method must be called only once, after the object is completely configured, and before it is used for the first time. Reimplemented from toxic::IObject. Reimplemented in toxic::Mesh. Definition at line 52 of file iarealight.cpp. References toxic::IBoundedObject::ComputeSurfaceArea(), toxic::ISurfaceShader::GetRadiantExitance(), m_power, and m_surface_area. Referenced by toxic::Mesh::Finalize(). |
|
|
Implements toxic::ILight. Definition at line 60 of file iarealight.cpp. References toxic::IBoundedObject::EvaluateSurface(), toxic::ISurfaceShader::GetEDF(), toxic::IObject::GetSurfaceShader(), toxic::Ray::m_direction, toxic::Ray::m_origin, toxic::Context::m_rng, sheep::MT19937RNG::RandomReal1(), and toxic::IEDF::Sample(). |
|
|
Returns the emission power of this object, expressed in W.
Implements toxic::ILight. Definition at line 102 of file iarealight.h. |
|
|
Emission power of this object, expressed in W.
Definition at line 76 of file iarealight.h. Referenced by Finalize(). |
|
|
Cached value of the surface area of this object, expressed in m^2.
Definition at line 75 of file iarealight.h. Referenced by ComputeIrradiance(), and Finalize(). |
1.3.6