BidirectionalPathTracer Class Reference

Unbiased bidirectional path tracer with support for efficient direct illumination. More...

#include <BidirectionalPathTracer.h>

Inheritance diagram for BidirectionalPathTracer:

PointSampleRenderer IPathGenerator Renderer PropertyMap

List of all members.

Public Member Functions

virtual void finalize ()
 Called upon finishing a call to render.
Constructors
 BidirectionalPathTracer (RenderOutput *output=NULL, Camera *camera=NULL, Scene *scene=NULL)
virtual ~BidirectionalPathTracer ()
Main usage interface
virtual void sample (PointSample &outSample)
 Renders a single point sample (incident radiance evaluation) at the point specified on the film plane.
Path generation
virtual bool generate (Path &outPath)
 Generates a complete, valid path from scratch.
virtual void generateL (Path &outPath)
 Generates a light subpath which is assumed to start at an emitter.
virtual void generateE (Path &outPath)
 Generates an eye subpath which is assumed to end at a sensor.
virtual void generateE (Path &outPath, bool debug)

Protected Attributes

HDRImage ** m_images
ProgressiveFilterValue
< SpectralSampleSet > ** 
m_filters


Detailed Description

Unbiased bidirectional path tracer with support for efficient direct illumination.

Author:
Travis Fischer (fisch0920@gmail.com)

Matthew Jacobs (jacobs.mh@gmail.com)

Date:
Fall 2008

Definition at line 21 of file BidirectionalPathTracer.h.


Constructor & Destructor Documentation

BidirectionalPathTracer::BidirectionalPathTracer ( RenderOutput output = NULL,
Camera camera = NULL,
Scene scene = NULL 
) [inline]

Definition at line 28 of file BidirectionalPathTracer.h.

virtual BidirectionalPathTracer::~BidirectionalPathTracer (  )  [inline, virtual]

Definition at line 34 of file BidirectionalPathTracer.h.


Member Function Documentation

void BidirectionalPathTracer::sample ( PointSample sample  )  [virtual]

Renders a single point sample (incident radiance evaluation) at the point specified on the film plane.

Notes: k = 2: only contribution is from directly visible lights (eye -> light) other paths won't match up with the incident direction (other vertex -> eye) k = 3:

Implements PointSampleRenderer.

Definition at line 40 of file BidirectionalPathTracer.cpp.

bool BidirectionalPathTracer::generate ( Path outPath  )  [virtual]

Generates a complete, valid path from scratch.

Note:
path generated is assumed to start at an emitter (light) and end at a sensor (camera)
Returns:
true on success or false on failure (if an invalid path was encountered)

Implements IPathGenerator.

Definition at line 203 of file BidirectionalPathTracer.cpp.

void BidirectionalPathTracer::generateL ( Path outPath  )  [virtual]

Generates a light subpath which is assumed to start at an emitter.

Implements IPathGenerator.

Definition at line 212 of file BidirectionalPathTracer.cpp.

void BidirectionalPathTracer::generateE ( Path outPath  )  [virtual]

Generates an eye subpath which is assumed to end at a sensor.

Implements IPathGenerator.

Definition at line 224 of file BidirectionalPathTracer.cpp.

void BidirectionalPathTracer::generateE ( Path outPath,
bool  debug 
) [virtual]

Definition at line 228 of file BidirectionalPathTracer.cpp.

void BidirectionalPathTracer::finalize (  )  [virtual]

Called upon finishing a call to render.

Note:
Default implementation is blank

Reimplemented from PointSampleRenderer.

Definition at line 193 of file BidirectionalPathTracer.cpp.


Member Data Documentation

Definition at line 84 of file BidirectionalPathTracer.h.


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

Generated on 28 Feb 2009 for Milton by doxygen 1.5.6