|
Photon Engine 2.0.0-beta
A physically based renderer.
|
Diffusive surface emitter comprised of multiple surface fragments. All surface fragments use the same energy texture. More...
#include <GroupedDiffuseSurfaceEmitter.h>
Public Member Functions | |
| GroupedDiffuseSurfaceEmitter (TSpanView< const Primitive * > surfaces, const std::shared_ptr< TTexture< math::Spectrum > > &emittedEnergy, EmitterFeatureSet featureSet=defaultFeatureSet) | |
| void | evalEmittedEnergy (const SurfaceHit &Xe, math::Spectrum *out_energy) const override |
| Evaluate emitted energy from a point on the surface. | |
| void | genDirectSample (DirectEnergySampleQuery &query, SampleFlow &sampleFlow, HitProbe &probe) const override |
| Sample direct lighting for a target position. | |
| void | calcDirectPdf (DirectEnergyPdfQuery &query) const override |
| Calculate the PDF of direct lighting for a target position. | |
| void | emitRay (EnergyEmissionSampleQuery &query, SampleFlow &sampleFlow, HitProbe &probe) const override |
| Emit a ray that carries some amount of energy from this emitter. | |
| real | calcRadiantFluxApprox () const override |
| std::size_t | numSurfaces () const |
| const Primitive & | getSurface (std::size_t surfaceIdx) const |
| Get a surface fragment by index. | |
| const TTexture< math::Spectrum > & | getEmittedEnergy () const |
Public Member Functions inherited from ph::DiffuseSurfaceEmitterBase | |
| DiffuseSurfaceEmitterBase (EmitterFeatureSet featureSet=defaultFeatureSet) | |
Public Member Functions inherited from ph::SurfaceEmitter | |
| SurfaceEmitter (EmitterFeatureSet featureSet=defaultFeatureSet) | |
| virtual void | setFrontFaceEmit () |
| virtual void | setBackFaceEmit () |
Public Member Functions inherited from ph::Emitter | |
| Emitter (EmitterFeatureSet featureSet=defaultFeatureSet) | |
| virtual | ~Emitter () |
| EmitterFeatureSet | getFeatureSet () const |
Additional Inherited Members | |
Static Public Attributes inherited from ph::Emitter | |
| static constexpr auto | defaultFeatureSet = EmitterFeatureSet(EEmitterFeatureSet::Default) |
Protected Member Functions inherited from ph::DiffuseSurfaceEmitterBase | |
| void | evalEnergyFromSurface (const TTexture< math::Spectrum > &energy, const SurfaceHit &Xe, math::Spectrum *out_energy) const |
| void | genDirectSampleFromSurface (const Primitive &surface, const TTexture< math::Spectrum > &energy, DirectEnergySampleQuery &query, SampleFlow &sampleFlow, HitProbe &probe) const |
| void | emitRayFromSurface (const Primitive &surface, const TTexture< math::Spectrum > &energy, EnergyEmissionSampleQuery &query, SampleFlow &sampleFlow, HitProbe &probe) const |
Protected Member Functions inherited from ph::SurfaceEmitter | |
| bool | canEmit (const math::Vector3R &emitDir, const math::Vector3R &N) const |
| void | calcDirectPdfWForSrcPrimitive (DirectEnergyPdfQuery &query, const lta::PDF &pickPdf=lta::PDF::D(1), const lta::PDF &emitPosUvwPdf={}) const |
Protected Attributes inherited from ph::SurfaceEmitter | |
| bool | m_isBackFaceEmission |
Diffusive surface emitter comprised of multiple surface fragments. All surface fragments use the same energy texture.
|
explicit |
|
overridevirtual |
Calculate the PDF of direct lighting for a target position.
EEmitterFeatureSet::DirectSample Implements ph::DiffuseSurfaceEmitterBase.
|
overridevirtual |
Reimplemented from ph::Emitter.
|
overridevirtual |
Emit a ray that carries some amount of energy from this emitter.
EnergyEmissionSampleOutput::getEmittedRay() and probe)EEmitterFeatureSet::EmissionSample Implements ph::DiffuseSurfaceEmitterBase.
|
overridevirtual |
Evaluate emitted energy from a point on the surface.
| Xe | The point that emits energy. |
Implements ph::DiffuseSurfaceEmitterBase.
|
overridevirtual |
Sample direct lighting for a target position.
DirectEnergySampleOutput::getObservationRay() and probe)EEmitterFeatureSet::DirectSample Implements ph::DiffuseSurfaceEmitterBase.
|
inline |
|
inline |
Get a surface fragment by index.
|
inline |