lux::BidirIntegrator Class Reference

#include <bidirectional.h>

Inheritance diagram for lux::BidirIntegrator:
[legend]
Collaboration diagram for lux::BidirIntegrator:
[legend]

List of all members.

Public Types

enum  LightStrategy { SAMPLE_ALL_UNIFORM, SAMPLE_ONE_UNIFORM, SAMPLE_AUTOMATIC }

Public Member Functions

 BidirIntegrator (int ed, int ld, float et, float lt, LightStrategy ls, bool d)
virtual ~BidirIntegrator ()
virtual int Li (const TsPack *tspack, const Scene *scene, const Sample *sample) const
virtual void RequestSamples (Sample *sample, const Scene *scene)
virtual void Preprocess (const TsPack *tspack, const Scene *scene)
Spectrum Li (const Scene *scene, const RayDifferential &ray, const Sample *sample, float *alpha) const
void RequestSamples (Sample *sample, const Scene *scene)
virtual BidirIntegratorclone () const
IntegrationSamplerHasIntegrationSampler (IntegrationSampler *is)

Static Public Member Functions

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

Public Attributes

int maxEyeDepth
int maxLightDepth
float eyeThreshold
float lightThreshold
int sampleEyeOffset
int sampleLightOffset
int eyeBufferId
int lightBufferId

Private Member Functions

int generatePath (const Scene *scene, const Ray &r, const Sample *sample, const int *bsdfOffset, const int *bsdfCompOffset, BidirVertex *vertices, int maxVerts) const
float weightPath (BidirVertex *eye, int nEye, BidirVertex *light, int nLight) const
Spectrum evalPath (const Scene *scene, BidirVertex *eye, int nEye, BidirVertex *light, int nLight) const

Static Private Member Functions

static float G (const BidirVertex &v0, const BidirVertex &v1)
static bool visible (const Scene *scene, const Point &P0, const Point &P1)

Private Attributes

LightStrategy lightStrategy
int lightNumOffset
int lightComponentOffset
int lightPosOffset
int lightDirOffset
int sampleDirectOffset
bool debug
int eyeBSDFOffset [MAX_VERTS]
int eyeBSDFCompOffset [MAX_VERTS]
int lightBSDFOffset [MAX_VERTS]
int lightBSDFCompOffset [MAX_VERTS]
int directLightOffset [MAX_VERTS]
int directLightNumOffset [MAX_VERTS]
int directBSDFOffset [MAX_VERTS]
int directBSDFCompOffset [MAX_VERTS]

Detailed Description

Definition at line 31 of file integrators/bidirectional.h.


Member Enumeration Documentation

Enumerator:
SAMPLE_ALL_UNIFORM 
SAMPLE_ONE_UNIFORM 
SAMPLE_AUTOMATIC 

Definition at line 34 of file integrators/bidirectional.h.


Constructor & Destructor Documentation

lux::BidirIntegrator::BidirIntegrator ( int  ed,
int  ld,
float  et,
float  lt,
LightStrategy  ls,
bool  d 
) [inline]

Definition at line 39 of file integrators/bidirectional.h.

References eyeBufferId, and lightBufferId.

Referenced by clone(), and CreateSurfaceIntegrator().

virtual lux::BidirIntegrator::~BidirIntegrator (  )  [inline, virtual]

Definition at line 47 of file integrators/bidirectional.h.


Member Function Documentation

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

Definition at line 29 of file pbrtattic/integrators/bidirectional.cpp.

References BidirIntegrator().

static SurfaceIntegrator* lux::BidirIntegrator::CreateSurfaceIntegrator ( const ParamSet params  )  [static]
SurfaceIntegrator * BidirIntegrator::CreateSurfaceIntegrator ( const ParamSet params  )  [static]
Spectrum BidirIntegrator::evalPath ( const Scene scene,
BidirVertex eye,
int  nEye,
BidirVertex light,
int  nLight 
) const [private]
float BidirIntegrator::G ( const BidirVertex v0,
const BidirVertex v1 
) [static, private]
int BidirIntegrator::generatePath ( const Scene scene,
const Ray r,
const Sample sample,
const int bsdfOffset,
const int bsdfCompOffset,
BidirVertex vertices,
int  maxVerts 
) const [private]
IntegrationSampler* lux::BidirIntegrator::HasIntegrationSampler ( IntegrationSampler is  )  [inline]

Definition at line 40 of file pbrtattic/integrators/bidirectional.h.

Spectrum BidirIntegrator::Li ( const Scene scene,
const RayDifferential ray,
const Sample sample,
float *  alpha 
) const
int BidirIntegrator::Li ( const TsPack tspack,
const Scene scene,
const Sample sample 
) const [virtual]
void BidirIntegrator::Preprocess ( const TsPack tspack,
const Scene scene 
) [virtual]
void lux::BidirIntegrator::RequestSamples ( Sample sample,
const Scene scene 
) [virtual]

Reimplemented from lux::Integrator.

void BidirIntegrator::RequestSamples ( Sample sample,
const Scene scene 
) [virtual]
bool BidirIntegrator::visible ( const Scene scene,
const Point P0,
const Point P1 
) [static, private]

Definition at line 176 of file pbrtattic/integrators/bidirectional.cpp.

References lux::Scene::IntersectP().

Referenced by evalPath().

float BidirIntegrator::weightPath ( BidirVertex eye,
int  nEye,
BidirVertex light,
int  nLight 
) const [private]

Definition at line 145 of file pbrtattic/integrators/bidirectional.cpp.

Referenced by Li().


Member Data Documentation

Definition at line 62 of file integrators/bidirectional.h.

Referenced by CreateSurfaceIntegrator(), and Preprocess().

Definition at line 57 of file pbrtattic/integrators/bidirectional.h.

Referenced by Li().

Definition at line 57 of file pbrtattic/integrators/bidirectional.h.

Referenced by Li().

Definition at line 56 of file pbrtattic/integrators/bidirectional.h.

Referenced by Li().

Definition at line 56 of file pbrtattic/integrators/bidirectional.h.

Referenced by Li().

Definition at line 54 of file pbrtattic/integrators/bidirectional.h.

Referenced by Li().

Definition at line 54 of file pbrtattic/integrators/bidirectional.h.

Referenced by Li().

Definition at line 56 of file integrators/bidirectional.h.

Referenced by BidirIntegrator(), Li(), and Preprocess().

Definition at line 55 of file pbrtattic/integrators/bidirectional.h.

Referenced by Li().

Definition at line 55 of file pbrtattic/integrators/bidirectional.h.

Referenced by Li().

Definition at line 56 of file integrators/bidirectional.h.

Referenced by BidirIntegrator(), getDirectLight(), Li(), and Preprocess().

Definition at line 60 of file integrators/bidirectional.h.

Referenced by Li(), and RequestSamples().

Definition at line 61 of file integrators/bidirectional.h.

Referenced by Li(), and RequestSamples().

Definition at line 60 of file integrators/bidirectional.h.

Referenced by Li(), and RequestSamples().

Definition at line 61 of file integrators/bidirectional.h.

Referenced by Li(), and RequestSamples().

Definition at line 59 of file integrators/bidirectional.h.

Referenced by Li(), and RequestSamples().

Definition at line 53 of file integrators/bidirectional.h.

Referenced by evalPath(), Li(), and RequestSamples().

Definition at line 53 of file integrators/bidirectional.h.

Referenced by evalPath(), Li(), and RequestSamples().

Definition at line 61 of file integrators/bidirectional.h.

Referenced by Li(), and RequestSamples().

Definition at line 55 of file integrators/bidirectional.h.

Referenced by generateEyePath(), and RequestSamples().

Definition at line 55 of file integrators/bidirectional.h.

Referenced by generateLightPath(), and RequestSamples().


The documentation for this class was generated from the following files:
Generated by  doxygen 1.6.2-20100208