BidirIntegrator Class Reference

Inheritance diagram for BidirIntegrator:

SurfaceIntegrator Integrator

List of all members.

Public Member Functions

Spectrum Li (const Scene *scene, const RayDifferential &ray, const Sample *sample, float *alpha) const
void RequestSamples (Sample *sample, const Scene *scene)

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

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]
int lightNumOffset
int lightPosOffset
int lightDirOffset


Detailed Description

Definition at line 31 of file bidirectional.cpp.


Member Function Documentation

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

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

int BidirIntegrator::generatePath ( const Scene *  scene,
const Ray &  r,
const Sample *  sample,
const int *  bsdfOffset,
const int *  bsdfCompOffset,
BidirVertex *  vertices,
int  maxVerts 
) const [private]

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

Definition at line 175 of file bidirectional.cpp.

Referenced by Li().

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]

Definition at line 201 of file bidirectional.cpp.

References AbsDot(), DistanceSquared(), BidirVertex::ng, Normalize(), and BidirVertex::p.

Referenced by evalPath().

bool BidirIntegrator::visible ( const Scene *  scene,
const Point &  P0,
const Point &  P1 
) [static, private]

Definition at line 206 of file bidirectional.cpp.

References Scene::IntersectP(), and RAY_EPSILON.

Referenced by evalPath().


Member Data Documentation

int BidirIntegrator::eyeBSDFOffset[MAX_VERTS] [private]

Definition at line 48 of file bidirectional.cpp.

Referenced by Li(), and RequestSamples().

int BidirIntegrator::eyeBSDFCompOffset[MAX_VERTS] [private]

Definition at line 48 of file bidirectional.cpp.

Referenced by Li(), and RequestSamples().

int BidirIntegrator::lightBSDFOffset[MAX_VERTS] [private]

Definition at line 49 of file bidirectional.cpp.

Referenced by Li(), and RequestSamples().

int BidirIntegrator::lightBSDFCompOffset[MAX_VERTS] [private]

Definition at line 49 of file bidirectional.cpp.

Referenced by Li(), and RequestSamples().

int BidirIntegrator::directLightOffset[MAX_VERTS] [private]

Definition at line 50 of file bidirectional.cpp.

Referenced by Li(), and RequestSamples().

int BidirIntegrator::directLightNumOffset[MAX_VERTS] [private]

Definition at line 50 of file bidirectional.cpp.

Referenced by Li(), and RequestSamples().

int BidirIntegrator::directBSDFOffset[MAX_VERTS] [private]

Definition at line 51 of file bidirectional.cpp.

Referenced by Li(), and RequestSamples().

int BidirIntegrator::directBSDFCompOffset[MAX_VERTS] [private]

Definition at line 51 of file bidirectional.cpp.

Referenced by Li(), and RequestSamples().

Definition at line 52 of file bidirectional.cpp.

Referenced by Li(), and RequestSamples().

Definition at line 52 of file bidirectional.cpp.

Referenced by Li(), and RequestSamples().

Definition at line 52 of file bidirectional.cpp.

Referenced by Li(), and RequestSamples().


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

Generated on Mon Jul 20 17:31:54 2009 for pbrt by  doxygen 1.5.6