Photon Engine 2.0.0-beta
A physically based renderer.
|
An electromagnetic energy emitting source. The emitted energy can be captured by a Receiver
.
More...
#include <Emitter.h>
Public Member Functions | |
Emitter (EmitterFeatureSet featureSet=defaultFeatureSet) | |
virtual | ~Emitter () |
virtual void | evalEmittedEnergy (const SurfaceHit &Xe, math::Spectrum *out_energy) const =0 |
Evaluate emitted energy from a point on the surface. | |
virtual void | genDirectSample (DirectEnergySampleQuery &query, SampleFlow &sampleFlow, HitProbe &probe) const =0 |
Sample direct lighting for a target position. | |
virtual void | calcDirectPdf (DirectEnergyPdfQuery &query) const =0 |
Calculate the PDF of direct lighting for a target position. | |
virtual void | emitRay (EnergyEmissionSampleQuery &query, SampleFlow &sampleFlow, HitProbe &probe) const =0 |
Emit a ray that carries some amount of energy from this emitter. | |
virtual real | calcRadiantFluxApprox () const |
EmitterFeatureSet | getFeatureSet () const |
Static Public Attributes | |
static constexpr auto | defaultFeatureSet = EmitterFeatureSet(EEmitterFeatureSet::Default) |
An electromagnetic energy emitting source. The emitted energy can be captured by a Receiver
.
|
explicit |
featureSet | Request a set of features for this emitter. |
|
virtualdefault |
|
pure virtual |
Calculate the PDF of direct lighting for a target position.
EEmitterFeatureSet::DirectSample
Implemented in ph::DiffuseSurfaceEmitter, ph::DiffuseSurfaceEmitterBase, ph::GroupedDiffuseSurfaceEmitter, ph::LatLongEnvEmitter, ph::OmniModulatedEmitter, and ph::SurfaceEmitter.
|
inlinevirtual |
Reimplemented in ph::DiffuseSurfaceEmitter, ph::GroupedDiffuseSurfaceEmitter, ph::LatLongEnvEmitter, and ph::OmniModulatedEmitter.
|
pure virtual |
Emit a ray that carries some amount of energy from this emitter.
EnergyEmissionSampleOutput::getEmittedRay()
and probe
)EEmitterFeatureSet::EmissionSample
Implemented in ph::DiffuseSurfaceEmitter, ph::DiffuseSurfaceEmitterBase, ph::GroupedDiffuseSurfaceEmitter, ph::LatLongEnvEmitter, ph::OmniModulatedEmitter, and ph::SurfaceEmitter.
|
pure virtual |
Evaluate emitted energy from a point on the surface.
Xe | The point that emits energy. |
Implemented in ph::DiffuseSurfaceEmitter, ph::DiffuseSurfaceEmitterBase, ph::GroupedDiffuseSurfaceEmitter, ph::LatLongEnvEmitter, ph::OmniModulatedEmitter, and ph::SurfaceEmitter.
|
pure virtual |
Sample direct lighting for a target position.
DirectEnergySampleOutput::getObservationRay()
and probe
)EEmitterFeatureSet::DirectSample
Implemented in ph::DiffuseSurfaceEmitter, ph::DiffuseSurfaceEmitterBase, ph::GroupedDiffuseSurfaceEmitter, ph::LatLongEnvEmitter, ph::OmniModulatedEmitter, and ph::SurfaceEmitter.
|
inline |
|
staticconstexpr |