lux::ExPhotonIntegrator Class Reference

#include <exphotonmap.h>

Inheritance diagram for lux::ExPhotonIntegrator:

lux::SurfaceIntegrator lux::SurfaceIntegrator lux::Integrator lux::Integrator

List of all members.

Public Types

enum  LightStrategy { SAMPLE_ALL_UNIFORM, SAMPLE_ONE_UNIFORM, SAMPLE_AUTOMATIC }
enum  RRStrategy { RR_EFFICIENCY, RR_PROBABILITY, RR_NONE }

Public Member Functions

 ExPhotonIntegrator (LightStrategy st, int ncaus, int nindir, int maxDirPhotons, int nLookup, int mdepth, float maxdist, bool finalGather, int gatherSamples, float ga, RRStrategy grrStrategy, float grrContinueProbability, bool dbgEnableDirect, bool dbgEnableCaustic, bool dbgEnableIndirect, bool dbgEnableSpecular)
 ~ExPhotonIntegrator ()
SWCSpectrum Li (const Scene *scene, const RayDifferential &ray, const Sample *sample, float *alpha) const
void RequestSamples (Sample *sample, const Scene *scene)
void Preprocess (const Scene *)
virtual ExPhotonIntegratorclone () const
IntegrationSampler * HasIntegrationSampler (IntegrationSampler *is)
 ExPhotonIntegrator (int ncaus, int nindir, int nLookup, int mdepth, float maxdist, bool finalGather, int gatherSamples, float rrt, float ga)
 ~ExPhotonIntegrator ()
Spectrum Li (const Scene *scene, const RayDifferential &ray, const Sample *sample, float *alpha) const
void RequestSamples (Sample *sample, const Scene *scene)
void Preprocess (const Scene *)
virtual ExPhotonIntegratorclone () const
IntegrationSampler * HasIntegrationSampler (IntegrationSampler *is)

Static Public Member Functions

static SurfaceIntegratorCreateSurfaceIntegrator (const ParamSet &params)
static SurfaceIntegratorCreateSurfaceIntegrator (const ParamSet &params)

Private Member Functions

SWCSpectrum estimateE (KdTree< EPhoton, EPhotonProcess > *map, int count, const Point &p, const Normal &n) const
SWCSpectrum LiInternal (const int specularDepth, const Scene *scene, const RayDifferential &ray, const Sample *sample, float *alpha) const
Spectrum estimateE (KdTree< EPhoton, EPhotonProcess > *map, int count, const Point &p, const Normal &n) const

Static Private Member Functions

static bool unsuccessful (int needed, int found, int shot)
static SWCSpectrum LPhoton (KdTree< EPhoton, EPhotonProcess > *map, int nPaths, int nLookup, BSDF *bsdf, const Intersection &isect, const Vector &w, float maxDistSquared)
static bool unsuccessful (int needed, int found, int shot)
static Spectrum LPhoton (KdTree< EPhoton, EPhotonProcess > *map, int nPaths, int nLookup, BSDF *bsdf, const Intersection &isect, const Vector &w, float maxDistSquared)

Private Attributes

LightStrategy lightStrategy
u_int nCausticPhotons
u_int nIndirectPhotons
u_int maxDirectPhotons
u_int nLookup
int maxSpecularDepth
float maxDistSquared
int maxDepth
bool finalGather
float cosGatherAngle
int gatherSamples
RRStrategy gatherRRStrategy
float gatherRRContinueProbability
bool debugEnableDirect
bool debugEnableCaustic
bool debugEnableIndirect
bool debugEnableSpecular
int sampleOffset
int sampleFinalGather1Offset
int sampleFinalGather2Offset
int nCausticPaths
int nIndirectPaths
KdTree< EPhoton, EPhotonProcess > * causticMap
KdTree< EPhoton, EPhotonProcess > * indirectMap
KdTree< ERadiancePhoton,
ERadiancePhotonProcess > * 
radianceMap
int gatherSampleOffset [2]
int gatherComponentOffset [2]
int specularDepth
float rrTreshold
int * lightSampleOffset
int lightNumOffset
int * bsdfSampleOffset
int * bsdfComponentOffset


Detailed Description

Definition at line 119 of file integrators/exphotonmap.h.


Member Enumeration Documentation

Enumerator:
SAMPLE_ALL_UNIFORM 
SAMPLE_ONE_UNIFORM 
SAMPLE_AUTOMATIC 

Definition at line 122 of file integrators/exphotonmap.h.

Enumerator:
RR_EFFICIENCY 
RR_PROBABILITY 
RR_NONE 

Definition at line 126 of file integrators/exphotonmap.h.


Constructor & Destructor Documentation

ExPhotonIntegrator::ExPhotonIntegrator ( LightStrategy  st,
int  ncaus,
int  nindir,
int  maxDirPhotons,
int  nLookup,
int  mdepth,
float  maxdist,
bool  finalGather,
int  gatherSamples,
float  ga,
RRStrategy  grrStrategy,
float  grrContinueProbability,
bool  dbgEnableDirect,
bool  dbgEnableCaustic,
bool  dbgEnableIndirect,
bool  dbgEnableSpecular 
)

ExPhotonIntegrator::~ExPhotonIntegrator (  ) 

Definition at line 197 of file integrators/exphotonmap.cpp.

References causticMap, indirectMap, and radianceMap.

ExPhotonIntegrator::ExPhotonIntegrator ( int  ncaus,
int  nindir,
int  nLookup,
int  mdepth,
float  maxdist,
bool  finalGather,
int  gatherSamples,
float  rrt,
float  ga 
)

lux::ExPhotonIntegrator::~ExPhotonIntegrator (  ) 


Member Function Documentation

virtual ExPhotonIntegrator* lux::ExPhotonIntegrator::clone (  )  const [virtual]

ExPhotonIntegrator * ExPhotonIntegrator::clone (  )  const [virtual]

Definition at line 38 of file integrators/exphotonmap.cpp.

References ExPhotonIntegrator().

static SurfaceIntegrator* lux::ExPhotonIntegrator::CreateSurfaceIntegrator ( const ParamSet params  )  [static]

SurfaceIntegrator * ExPhotonIntegrator::CreateSurfaceIntegrator ( const ParamSet params  )  [static]

Spectrum lux::ExPhotonIntegrator::estimateE ( KdTree< EPhoton, EPhotonProcess > *  map,
int  count,
const Point p,
const Normal n 
) const [private]

Spectrum ExPhotonIntegrator::estimateE ( KdTree< EPhoton, EPhotonProcess > *  map,
int  count,
const Point p,
const Normal n 
) const [private]

IntegrationSampler* lux::ExPhotonIntegrator::HasIntegrationSampler ( IntegrationSampler *  is  )  [inline]

Definition at line 120 of file pbrtattic/integrators/exphotonmap.h.

IntegrationSampler* lux::ExPhotonIntegrator::HasIntegrationSampler ( IntegrationSampler *  is  )  [inline]

Definition at line 145 of file integrators/exphotonmap.h.

Spectrum lux::ExPhotonIntegrator::Li ( const Scene scene,
const RayDifferential ray,
const Sample sample,
float *  alpha 
) const [virtual]

Implements lux::Integrator.

Spectrum ExPhotonIntegrator::Li ( const Scene scene,
const RayDifferential ray,
const Sample sample,
float *  alpha 
) const [virtual]

SWCSpectrum ExPhotonIntegrator::LiInternal ( const int  specularDepth,
const Scene scene,
const RayDifferential ray,
const Sample sample,
float *  alpha 
) const [private]

Definition at line 546 of file integrators/exphotonmap.cpp.

References lux::AbsDot(), lux::SWCSpectrum::Black(), lux::BSDF_ALL, lux::BSDF_DIFFUSE, lux::BSDF_GLOSSY, lux::BSDF_REFLECTION, lux::BSDF_SPECULAR, lux::BSDF_TRANSMISSION, lux::Color::c, causticMap, lux::CoordinateSystem(), cosGatherAngle, lux::Ray::d, debugEnableCaustic, debugEnableDirect, debugEnableIndirect, debugEnableSpecular, lux::Intersection::dg, lux::BSDF::dgShading, lux::DifferentialGeometry::dndu, lux::DifferentialGeometry::dndv, lux::Dot(), lux::DifferentialGeometry::dpdx, lux::DifferentialGeometry::dpdy, lux::DifferentialGeometry::dudx, lux::DifferentialGeometry::dudy, lux::DifferentialGeometry::dvdx, lux::DifferentialGeometry::dvdy, lux::BSDF::eta, lux::BSDF::f(), lux::SWCSpectrum::filter(), finalGather, Floor2Int(), lux::EPhotonProcess::foundPhotons, lux::FromXYZ(), gatherRRContinueProbability, gatherRRStrategy, gatherSamples, lux::Intersection::GetBSDF(), lux::Sampler::GetLazyValues(), lux::RayDifferential::hasDifferentials, indirectMap, INFINITY, lux::Scene::Intersect(), lux::Intersection::Le(), lux::Integrator::Li(), Li(), lux::Scene::lights, lightStrategy, lux::ERadiancePhoton::Lo, lux::KdTree< NodeData, LookupProc >::Lookup(), LPhoton(), LUX_ERROR, LUX_SYSTEM, luxError, maxDistSquared, maxSpecularDepth, cimg_library::cimg::min(), nCausticPaths, nIndirectPaths, nLookup, lux::DifferentialGeometry::nn, lux::BSDF::NumComponents(), lux::Ray::o, lux::DifferentialGeometry::p, blender::p, lux::BSDF::Pdf(), lux::ERadiancePhotonProcess::photon, lux::EClosePhoton::photon, lux::EPhotonProcess::photons, lux::PowerHeuristic(), radianceMap, RR_EFFICIENCY, RR_PROBABILITY, lux::RayDifferential::rx, lux::RayDifferential::ry, SAMPLE_ALL_UNIFORM, lux::BSDF::Sample_f(), SAMPLE_ONE_UNIFORM, sampleFinalGather1Offset, sampleFinalGather2Offset, sampleOffset, lux::Sample::sampler, lux::VolumeIntegrator::Transmittance(), lux::Scene::Transmittance(), lux::UniformConePdf(), lux::UniformSampleAllLights(), lux::UniformSampleCone(), lux::UniformSampleOneLight(), lux::Scene::volumeIntegrator, lux::EPhoton::wi, lux::Point::x, lux::Point::y, and lux::Point::z.

Referenced by Li().

static Spectrum lux::ExPhotonIntegrator::LPhoton ( KdTree< EPhoton, EPhotonProcess > *  map,
int  nPaths,
int  nLookup,
BSDF bsdf,
const Intersection isect,
const Vector w,
float  maxDistSquared 
) [static, private]

Spectrum ExPhotonIntegrator::LPhoton ( KdTree< EPhoton, EPhotonProcess > *  map,
int  nPaths,
int  nLookup,
BSDF bsdf,
const Intersection isect,
const Vector w,
float  maxDistSquared 
) [static, private]

void lux::ExPhotonIntegrator::Preprocess ( const Scene  )  [virtual]

Reimplemented from lux::Integrator.

void ExPhotonIntegrator::Preprocess ( const Scene scene  )  [virtual]

void lux::ExPhotonIntegrator::RequestSamples ( Sample sample,
const Scene scene 
) [virtual]

Reimplemented from lux::Integrator.

void ExPhotonIntegrator::RequestSamples ( Sample sample,
const Scene scene 
) [virtual]

static bool lux::ExPhotonIntegrator::unsuccessful ( int  needed,
int  found,
int  shot 
) [inline, static, private]

Definition at line 123 of file pbrtattic/integrators/exphotonmap.h.

static bool lux::ExPhotonIntegrator::unsuccessful ( int  needed,
int  found,
int  shot 
) [inline, static, private]

Definition at line 153 of file integrators/exphotonmap.h.

Referenced by Preprocess().


Member Data Documentation

Definition at line 146 of file pbrtattic/integrators/exphotonmap.h.

Definition at line 146 of file pbrtattic/integrators/exphotonmap.h.

Definition at line 176 of file integrators/exphotonmap.h.

Referenced by ExPhotonIntegrator(), and LiInternal().

Definition at line 135 of file pbrtattic/integrators/exphotonmap.h.

Definition at line 179 of file integrators/exphotonmap.h.

Referenced by ExPhotonIntegrator(), and LiInternal().

Definition at line 178 of file integrators/exphotonmap.h.

Referenced by ExPhotonIntegrator(), LiInternal(), and RequestSamples().

Definition at line 135 of file pbrtattic/integrators/exphotonmap.h.

Definition at line 145 of file pbrtattic/integrators/exphotonmap.h.

Definition at line 145 of file pbrtattic/integrators/exphotonmap.h.

Definition at line 168 of file integrators/exphotonmap.h.

Referenced by ExPhotonIntegrator(), LiInternal(), and RequestSamples().

Definition at line 173 of file integrators/exphotonmap.h.

Referenced by CreateSurfaceIntegrator().

Definition at line 169 of file integrators/exphotonmap.h.

Referenced by ExPhotonIntegrator(), and Preprocess().

Definition at line 172 of file integrators/exphotonmap.h.

Referenced by estimateE(), ExPhotonIntegrator(), and LiInternal().

Definition at line 171 of file integrators/exphotonmap.h.

Referenced by ExPhotonIntegrator(), LiInternal(), and RequestSamples().

Definition at line 191 of file integrators/exphotonmap.h.

Referenced by LiInternal(), and Preprocess().

Definition at line 169 of file integrators/exphotonmap.h.

Referenced by ExPhotonIntegrator(), and Preprocess().

Definition at line 191 of file integrators/exphotonmap.h.

Referenced by LiInternal(), and Preprocess().

Definition at line 169 of file integrators/exphotonmap.h.

Referenced by ExPhotonIntegrator(), and Preprocess().

Definition at line 170 of file integrators/exphotonmap.h.

Referenced by estimateE(), ExPhotonIntegrator(), and LiInternal().

Definition at line 140 of file pbrtattic/integrators/exphotonmap.h.

Referenced by ExPhotonIntegrator().

Definition at line 188 of file integrators/exphotonmap.h.

Referenced by LiInternal(), and RequestSamples().

Definition at line 189 of file integrators/exphotonmap.h.

Referenced by LiInternal(), and RequestSamples().

Definition at line 187 of file integrators/exphotonmap.h.

Referenced by LiInternal(), and RequestSamples().

Definition at line 138 of file pbrtattic/integrators/exphotonmap.h.

Referenced by ExPhotonIntegrator().


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

Generated on Fri Jul 24 11:50:05 2009 for lux by  doxygen 1.5.9