Lightmetrica
0.0.1.50dbee3 (yosakoi)
|
#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 BPTPathVertex * | FullPathVertex (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 BPTSubpath & | lightSubpath |
Light sub-path. | |
const BPTSubpath & | eyeSubpath |
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) | |
BPT full-path. Represents a full-path combining light sub-path and eye sub-path.
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.
s | Number of vertices in light sub-path. |
t | Number of vertices in eye sub-path. |
lightSubpath | Light sub-path. |
eyeSubpath | Eye sub-path. |
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}).
i | Index of 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.
i | Index of PDF. |
Math::Vec3 BPTFullPath::EvaluateUnweightContribution | ( | const Scene & | scene, |
Math::Vec2 & | rasterPosition | ||
) | const |
Evaluate unweight contribution C^*_{s,t}.
scene | Scene. |
rasterPosition | Raster position. |
bool BPTFullPath::FullpathPDFIsZero | ( | int | i | ) | const |
Check if p_i(x_{s,t}) is zero.
i | Index of PDF. |
true | Zero. |
false | Non-zero. |
const BPTPathVertex * BPTFullPath::FullPathVertex | ( | int | i | ) | const |
Get i-th vertex of the full-path.
i | Index of PDF. |
Math::PDFEval BPTFullPath::FullPathVertexDirectionPDF | ( | int | i, |
TransportDirection | transportDir | ||
) | const |
Get i-th directional PDF evaluation of the full-path.
i | Index of PDF. |
transportDir | Transport direction. |
Math::Float BPTFullPath::PathSelectionProbability | ( | ) | const |
Evaluate path selection probability. Evaluates path selection probability due to Russian roulette.