Lightmetrica  0.0.1.50dbee3 (yosakoi)
 All Classes Functions Variables Typedefs Enumerations Enumerator
Public Member Functions | List of all members
PSSMLTBPTPathSampler Class Referencefinal

Public Member Functions

 LM_COMPONENT_IMPL_DEF ("bpt")
 
virtual bool Configure (const ConfigNode &node, const Assets &assets) override
 
virtual PSSMLTPathSamplerClone () const override
 
virtual void SampleAndEvaluate (const Scene &scene, Sampler &sampler, PSSMLTSplats &splats, int rrDepth, int maxPathVertices) override
 
virtual void SampleAndEvaluateBidir (const Scene &scene, Sampler &subpathSamplerL, Sampler &subpathSamplerE, PSSMLTSplats &splats, int rrDepth, int maxPathVertices) override
 
virtual void SampleAndEvaluateBidirSpecified (const Scene &scene, Sampler &subpathSamplerL, Sampler &subpathSamplerE, PSSMLTSplat &splat, int rrDepth, int maxPathVertices, int s, int t) override
 
- Public Member Functions inherited from PSSMLTPathSampler
 LM_COMPONENT_INTERFACE_DEF ("pssmltpathsampler")
 
- Public Member Functions inherited from Component
virtual std::string ComponentInterfaceTypeName () const =0
 
virtual std::string ComponentImplTypeName () const =0
 
- Public Member Functions inherited from SIMDAlignedType
void * operator new (std::size_t size) throw (std::bad_alloc)
 
void operator delete (void *p)
 

Detailed Description

Bidirectional path tracing sampler. Implements path sampler for PSSMLT with BPT.

Inheritance diagram for PSSMLTBPTPathSampler:
PSSMLTPathSampler Component SIMDAlignedType

Member Function Documentation

PSSMLTPathSampler * PSSMLTBPTPathSampler::Clone ( ) const
overridevirtual

Clone the sampler.

Returns
Duplicated instance.

Implements PSSMLTPathSampler.

bool PSSMLTBPTPathSampler::Configure ( const ConfigNode node,
const Assets assets 
)
overridevirtual

Configure the sampler from XML element.

Parameters
nodeA XML element which consists of path_sampler element.
assetsAssets manager.
Return values
trueSucceeded to configure.
falseFailed to configure.

Implements PSSMLTPathSampler.

void PSSMLTBPTPathSampler::SampleAndEvaluate ( const Scene scene,
Sampler sampler,
PSSMLTSplats splats,
int  rrDepth,
int  maxPathVertices 
)
overridevirtual

Sample and evaluate light paths. Light path sampling strategy such as BPT might generate multiple light paths which contribute different raster position. We represent these different contributions by PSSMLTSplats structure.

Parameters
sceneScene.
samplerAbstract sampler.
splatsEvaluated pixel contributions and their raster positions.
rrDepthDepth to begin RR, -1 skips RR.
maxPathVerticesMaximum number of vertex, -1 specifies no limits.

Implements PSSMLTPathSampler.

void PSSMLTBPTPathSampler::SampleAndEvaluateBidir ( const Scene scene,
Sampler subpathSamplerL,
Sampler subpathSamplerE,
PSSMLTSplats splats,
int  rrDepth,
int  maxPathVertices 
)
overridevirtual

Sample and evaluate light paths (separated PSS version for BPT). Primary sample spaces is separated into two parts: for sampling light subpath and eye subpath, which increase coherency between mutations.

Parameters
sceneScene.
subpathSamplerLAbstract sampler for light subpath.
subpathSamplerEAbstract sampler for eye subpath.
splatsEvaluated pixel contributions and their raster positions.
rrDepthDepth to begin RR, -1 skips RR.
maxPathVerticesMaximum number of vertex of each subpath, -1 specifies no limits.

Implements PSSMLTPathSampler.

void PSSMLTBPTPathSampler::SampleAndEvaluateBidirSpecified ( const Scene scene,
Sampler subpathSamplerL,
Sampler subpathSamplerE,
PSSMLTSplat splat,
int  rrDepth,
int  maxPathVertices,
int  s,
int  t 
)
overridevirtual

Sample and evaluate light paths (separated PSS version for BPT) for specified technique. A variant of SampleAndEvaluateBidir with specified technique with #s and #t.

Parameters
sceneScene.
subpathSamplerLAbstract sampler for light subpath.
subpathSamplerEAbstract sampler for eye subpath.
splatEvaluated pixel contribution and its raster position.
rrDepthDepth to begin RR, -1 skips RR.
maxPathVerticesMaximum number of vertex of each subpath, -1 specifies no limits.
sNumber of light subpath vertices.
tNumber of eye subpath vertices.

Implements PSSMLTPathSampler.


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