Class PathTracer

  extended by de.grogra.ray2.tracing.ProcessorBase
      extended by de.grogra.ray2.tracing.RayProcessorBase
          extended by de.grogra.ray2.tracing.PathTracer
All Implemented Interfaces:
RayProcessor, java.lang.Cloneable
Direct Known Subclasses:
BiDirectionalProcessor, LineTracer

public class PathTracer
extends RayProcessorBase

This class implements a physically correct path tracer. The computation is done using the formulas for bidirectional path tracing in Eric Veach's PhD thesis "Robust Monte Carlo Methods for Light Transport Simulation". However note that the implemented path tracer is a standard path tracer which creates random paths starting at the eye and directly connects each created vertex with all lights in the scene. So in the terminology of bidirectional path tracing, only light subpaths consisting of a single light vertex are considered (or zero light vertices in case of a ray which hits a light surface).

Ole Kniemeyer

Nested Class Summary
Nested classes/interfaces inherited from class de.grogra.ray2.tracing.RayProcessorBase
Field Summary
static java.lang.String BRIGHTNESS
Fields inherited from class de.grogra.ray2.tracing.RayProcessorBase
enteredSolids, RECURSION_DEPTH, renderer, scene, sumColor
Constructor Summary
Method Summary
protected  void appendStatisticsImpl(java.lang.StringBuffer stats)
 void initialize(PixelwiseRenderer renderer, Scene scene)
          With this method the processor is initialized with the scene and other information of a PixelwiseRenderer.
protected  void initLocals()
protected  void mergeStatistics(ProcessorBase src)
Methods inherited from class de.grogra.ray2.tracing.RayProcessorBase
dup, getColorFromRay, getIOR, getLightProcessor, initializeBeforeTracing, record, record, setLightProcessor, setRecursionDepth, unrecord
Methods inherited from class de.grogra.ray2.tracing.ProcessorBase
appendStatistics, clone
Methods inherited from class java.lang.Object
equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
Methods inherited from interface de.grogra.ray2.tracing.RayProcessor

Field Detail


public static final java.lang.String BRIGHTNESS
See Also:
Constant Field Values
Constructor Detail


public PathTracer()
Method Detail


protected void appendStatisticsImpl(java.lang.StringBuffer stats)
Specified by:
appendStatisticsImpl in class ProcessorBase


public void initialize(PixelwiseRenderer renderer,
                       Scene scene)
Description copied from interface: RayProcessor
With this method the processor is initialized with the scene and other information of a PixelwiseRenderer.

Specified by:
initialize in interface RayProcessor
initialize in class RayProcessorBase
renderer - the renderer which provides the needed information
scene - the scene which is rendered


protected void initLocals()
initLocals in class RayProcessorBase


protected void mergeStatistics(ProcessorBase src)
mergeStatistics in class RayProcessorBase