PathVertex Class Reference

A Path is composed of zero or more PathVertex vertices stored in a PathVertexList. Each PathVertex stores the underlying SurfacePoint, representing a single point on a surface (and all relevant associated metadata, eg, UV coords, normal, BSDF, etc.). In addition to storing the underlying SurfacePoint, each PathVertex also stores a set of carefully chosen, local values which facilitate efficient computation of the unweighted, bidirectional contributions of all possible combinations of light and eye subpaths. Specifically, 'alphaL' and 'alphaE' store the cumulative light and eye contributions respectively, with respect to this vertex' index within its parent Path. More...

#include <PathVertex.h>

Inheritance diagram for PathVertex:

SSEAligned

List of all members.

Public Member Functions

Constructors
 PathVertex (SurfacePoint *pt_, const Vector3 &wi_, real_t GL_, real_t GE_, const SpectralSampleSet &alphaL_, const SpectralSampleSet &alphaE_, real_t pL_=1, real_t pE_=1)
 Initializes a PathVertex.
 PathVertex (SurfacePoint *pt_, real_t pL_, real_t pE_)
 PathVertex (const PathVertex &copy)
 PathVertex ()

Public Attributes

Fast-access public data
SurfacePointPtr pt
BSDFbsdf
real_t GL
real_t GE
Vector3 wi
SpectralSampleSet alphaL
SpectralSampleSet alphaE
SpectralSampleSet fs
real_t pdfL
real_t pdfE
real_t pL
real_t pE
Event event


Detailed Description

A Path is composed of zero or more PathVertex vertices stored in a PathVertexList. Each PathVertex stores the underlying SurfacePoint, representing a single point on a surface (and all relevant associated metadata, eg, UV coords, normal, BSDF, etc.). In addition to storing the underlying SurfacePoint, each PathVertex also stores a set of carefully chosen, local values which facilitate efficient computation of the unweighted, bidirectional contributions of all possible combinations of light and eye subpaths. Specifically, 'alphaL' and 'alphaE' store the cumulative light and eye contributions respectively, with respect to this vertex' index within its parent Path.

Author:
Travis Fischer (fisch0920@gmail.com)

Matthew Jacobs (jacobs.mh@gmail.com)

Date:
Fall 2008
Note:
Density with respect to projected solid angle is density with respect to ordinary solid angle divided by cos(theta) where theta is the angle between wo and the surface normal at v (PathVertex::pdfL and PathVertex::pdfE are both probability densities with respect to projected solid angle)
See also:
section 10.2 (pgs 302-305) of Veach's thesis for more details

Definition at line 38 of file PathVertex.h.


Constructor & Destructor Documentation

PathVertex::PathVertex ( SurfacePoint pt_,
const Vector3 wi_,
real_t  GL_,
real_t  GE_,
const SpectralSampleSet alphaL_,
const SpectralSampleSet alphaE_,
real_t  pL_ = 1,
real_t  pE_ = 1 
) [inline]

Initializes a PathVertex.

Note:
if alphaL_ is specified, vertex is assumed to be sampled starting from an emitter

if alphaE_ is specified, vertex is assumed to be sampled starting from a sensor (camera)

this means that one of alphaL_ or alphaE_ will be disregarded

Definition at line 102 of file PathVertex.h.

PathVertex::PathVertex ( SurfacePoint pt_,
real_t  pL_,
real_t  pE_ 
)

Definition at line 31 of file PathVertex.cpp.

PathVertex::PathVertex ( const PathVertex copy  )  [inline]

Definition at line 115 of file PathVertex.h.

PathVertex::PathVertex (  )  [inline]

Definition at line 122 of file PathVertex.h.


Member Data Documentation

Definition at line 42 of file PathVertex.h.

Definition at line 46 of file PathVertex.h.

Definition at line 49 of file PathVertex.h.

Definition at line 51 of file PathVertex.h.

Definition at line 53 of file PathVertex.h.

Definition at line 57 of file PathVertex.h.

Definition at line 58 of file PathVertex.h.

Definition at line 64 of file PathVertex.h.

Definition at line 69 of file PathVertex.h.

Definition at line 74 of file PathVertex.h.

Definition at line 77 of file PathVertex.h.

Definition at line 78 of file PathVertex.h.

Definition at line 85 of file PathVertex.h.


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

Generated on 28 Feb 2009 for Milton by doxygen 1.5.6