Photon Engine 2.0.0-beta
A physically based renderer.
Loading...
Searching...
No Matches
ESUniformRandom.h
Go to the documentation of this file.
1#pragma once
2
4
5#include <vector>
6
7namespace ph
8{
9
11{
12public:
13 void update(TSpanView<const Emitter*> emitters) override;
14 const Emitter* pickEmitter(SampleFlow& sampleFlow, real* out_PDF) const override;
15
16 void genDirectSample(
18 SampleFlow& sampleFlow,
19 HitProbe& probe) const override;
20
21 void calcDirectPdf(DirectEnergyPdfQuery& query) const override;
22
23private:
24 std::vector<const Emitter*> m_emitters;
25};
26
27}// end namespace ph
Information for the probability of generating a specific sample for direct energy estimation.
Definition DirectEnergyPdfQuery.h:81
Information for generating a sample for direct energy estimation.
Definition DirectEnergySampleQuery.h:89
Definition ESUniformRandom.h:11
const Emitter * pickEmitter(SampleFlow &sampleFlow, real *out_PDF) const override
Definition ESUniformRandom.cpp:35
void genDirectSample(DirectEnergySampleQuery &query, SampleFlow &sampleFlow, HitProbe &probe) const override
Sample direct lighting for a target position.
Definition ESUniformRandom.cpp:45
void calcDirectPdf(DirectEnergyPdfQuery &query) const override
Calculate the PDF of direct lighting for a target position.
Definition ESUniformRandom.cpp:65
void update(TSpanView< const Emitter * > emitters) override
Definition ESUniformRandom.cpp:19
An electromagnetic energy emitting source. The emitted energy can be captured by a Receiver.
Definition Emitter.h:68
Definition EmitterSampler.h:22
Lightweight ray intersection testing and reporting object. If an intersection is found,...
Definition HitProbe.h:27
A sample with arbitrary dimensions with fine-grained sampling control.
Definition SampleFlow.h:19
The root for all renderer implementations.
Definition EEngineProject.h:6
std::span< const T, EXTENT > TSpanView
Same as TSpan, except that the objects are const-qualified. Note that for pointer types,...
Definition TSpan.h:19