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

A unified interface for accessing cooked content in a visual world. More...

#include <Scene.h>

Public Member Functions

 Scene ()
 
 Scene (const Intersector *intersector, const EmitterSampler *emitterSampler)
 
bool isOccluding (const Ray &ray) const
 
bool isIntersecting (const Ray &ray, HitProbe *out_probe) const
 
const EmitterpickEmitter (SampleFlow &sampleFlow, real *out_PDF) const
 
void genDirectSample (DirectEnergySampleQuery &query, SampleFlow &sampleFlow, HitProbe &probe) const
 Sample direct lighting for a target position.
 
void calcDirectPdf (DirectEnergyPdfQuery &query) const
 Calculate the PDF of direct lighting for a target position.
 
void emitRay (EnergyEmissionSampleQuery &query, SampleFlow &sampleFlow, HitProbe &probe) const
 Emit a ray that carries some amount of energy from an emitter.
 
void setBackgroundPrimitive (const Primitive *const primitive)
 

Detailed Description

A unified interface for accessing cooked content in a visual world.

Constructor & Destructor Documentation

◆ Scene() [1/2]

ph::Scene::Scene ( )

◆ Scene() [2/2]

ph::Scene::Scene ( const Intersector * intersector,
const EmitterSampler * emitterSampler )

Member Function Documentation

◆ calcDirectPdf()

void ph::Scene::calcDirectPdf ( DirectEnergyPdfQuery & query) const

Calculate the PDF of direct lighting for a target position.

◆ emitRay()

void ph::Scene::emitRay ( EnergyEmissionSampleQuery & query,
SampleFlow & sampleFlow,
HitProbe & probe ) const

Emit a ray that carries some amount of energy from an emitter.

Note
Generates hit event (with EnergyEmissionSampleOutput::getEmittedRay() and probe).

◆ genDirectSample()

void ph::Scene::genDirectSample ( DirectEnergySampleQuery & query,
SampleFlow & sampleFlow,
HitProbe & probe ) const

Sample direct lighting for a target position.

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

◆ isIntersecting()

bool ph::Scene::isIntersecting ( const Ray & ray,
HitProbe * out_probe ) const

◆ isOccluding()

bool ph::Scene::isOccluding ( const Ray & ray) const

◆ pickEmitter()

const Emitter * ph::Scene::pickEmitter ( SampleFlow & sampleFlow,
real * out_PDF ) const

◆ setBackgroundPrimitive()

void ph::Scene::setBackgroundPrimitive ( const Primitive *const primitive)
inline

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