Photon Engine 2.0.0-beta
A physically based renderer.
Loading...
Searching...
No Matches
ph::EmitterSampler Class Referenceabstract

#include <EmitterSampler.h>

Inheritance diagram for ph::EmitterSampler:
ph::ESPowerFavoring ph::ESUniformRandom

Public Member Functions

virtual ~EmitterSampler ()
 
virtual void update (TSpanView< const Emitter * > emitters)=0
 
virtual const EmitterpickEmitter (SampleFlow &sampleFlow, real *out_PDF) const =0
 
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.
 

Constructor & Destructor Documentation

◆ ~EmitterSampler()

ph::EmitterSampler::~EmitterSampler ( )
virtualdefault

Member Function Documentation

◆ calcDirectPdf()

virtual void ph::EmitterSampler::calcDirectPdf ( DirectEnergyPdfQuery & query) const
pure virtual

Calculate the PDF of direct lighting for a target position.

Implemented in ph::ESPowerFavoring, and ph::ESUniformRandom.

◆ genDirectSample()

virtual void ph::EmitterSampler::genDirectSample ( DirectEnergySampleQuery & query,
SampleFlow & sampleFlow,
HitProbe & probe ) const
pure virtual

Sample direct lighting for a target position.

Note
Generates hit event (with DirectEnergySampleOutput::getObservationRay() and probe).

Implemented in ph::ESPowerFavoring, and ph::ESUniformRandom.

◆ pickEmitter()

virtual const Emitter * ph::EmitterSampler::pickEmitter ( SampleFlow & sampleFlow,
real * out_PDF ) const
pure virtual

◆ update()

virtual void ph::EmitterSampler::update ( TSpanView< const Emitter * > emitters)
pure virtual

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