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