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

#include <bpt.fullpath.h>

Public Member Functions

LM_PUBLIC_API BPTFullPath (int s, int t, const BPTSubpath &lightSubpath, const BPTSubpath &eyeSubpath)
 
LM_PUBLIC_API Math::Vec3 EvaluateUnweightContribution (const Scene &scene, Math::Vec2 &rasterPosition) const
 
LM_PUBLIC_API Math::Float EvaluateFullpathPDF (int i) const
 
LM_PUBLIC_API Math::Float EvaluateFullpathPDFRatio (int i) const
 
LM_PUBLIC_API bool FullpathPDFIsZero (int i) const
 
LM_PUBLIC_API Math::Float PathSelectionProbability () const
 
LM_PUBLIC_API void DebugPrint () const
 
LM_PUBLIC_API const BPTPathVertexFullPathVertex (int i) const
 
LM_PUBLIC_API Math::PDFEval FullPathVertexDirectionPDF (int i, TransportDirection transportDir) const
 

Public Attributes

int s
 

of vertices in light sub-path


 
int t
 

of vertices in eye sub-path


 
const BPTSubpathlightSubpath
 Light sub-path.
 
const BPTSubpatheyeSubpath
 Eye sub-path.
 
Math::PDFEval pdfDL [2]
 PDF evaluation for y_{s-1} (light sub-path)
 
Math::PDFEval pdfDE [2]
 PDF evaluation for z_{t-1} (eye sub-path)
 

Detailed Description

BPT full-path. Represents a full-path combining light sub-path and eye sub-path.

Constructor & Destructor Documentation

LM_NAMESPACE_BEGIN BPTFullPath::BPTFullPath ( int  s,
int  t,
const BPTSubpath lightSubpath,
const BPTSubpath eyeSubpath 
)

Constructor. Constructs a full-path from light sub-path and eye-subpath.

Parameters
sNumber of vertices in light sub-path.
tNumber of vertices in eye sub-path.
lightSubpathLight sub-path.
eyeSubpathEye sub-path.

Member Function Documentation

void BPTFullPath::DebugPrint ( ) const

Debug print. Prints contents of the full-path.

Math::Float BPTFullPath::EvaluateFullpathPDF ( int  i) const

Evaluate full-path probability density. Evaluate p_i(x_{s,t}) := p_{i,s+t-i}(x_{s,t}).

Parameters
iIndex of PDF.
Returns
Evaluated PDF.
Math::Float BPTFullPath::EvaluateFullpathPDFRatio ( int  i) const

Evaluate full-path probability density ratio. Evaluate p_{i+1}(x_{s,t}) / p_i(x_{s,t}). See Equation (10.9) in [Veach 1997]. This function requires p_s(x_{s,t}) be non-zero.

Parameters
iIndex of PDF.
Returns
Evaluated PDF.
Math::Vec3 BPTFullPath::EvaluateUnweightContribution ( const Scene scene,
Math::Vec2 &  rasterPosition 
) const

Evaluate unweight contribution C^*_{s,t}.

Parameters
sceneScene.
rasterPositionRaster position.
Returns
Contribution.
bool BPTFullPath::FullpathPDFIsZero ( int  i) const

Check if p_i(x_{s,t}) is zero.

Parameters
iIndex of PDF.
Return values
trueZero.
falseNon-zero.
const BPTPathVertex * BPTFullPath::FullPathVertex ( int  i) const

Get i-th vertex of the full-path.

Parameters
iIndex of PDF.
Returns
Vertex.
Math::PDFEval BPTFullPath::FullPathVertexDirectionPDF ( int  i,
TransportDirection  transportDir 
) const

Get i-th directional PDF evaluation of the full-path.

Parameters
iIndex of PDF.
transportDirTransport direction.
Returns
Evaluated PDF.
Math::Float BPTFullPath::PathSelectionProbability ( ) const

Evaluate path selection probability. Evaluates path selection probability due to Russian roulette.

Returns
Evaluated probability.

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