java.lang.Object
de.grogra.ray2.tracing.ProcessorBase
de.grogra.ray2.tracing.RayProcessorBase
de.grogra.ray2.tracing.PathTracer
- All Implemented Interfaces:
RayProcessor
,Cloneable
- Direct Known Subclasses:
BiDirectionalProcessor
,LineTracer
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).
- Author:
- Ole Kniemeyer
-
Nested Class Summary
Nested classes/interfaces inherited from class de.grogra.ray2.tracing.RayProcessorBase
RayProcessorBase.Locals
-
Field Summary
Fields inherited from class de.grogra.ray2.tracing.RayProcessorBase
enteredSolids, RECURSION_DEPTH, renderer, scene, sumColor
-
Constructor Summary
-
Method Summary
Modifier and TypeMethodDescriptionprotected void
appendStatisticsImpl
(StringBuffer stats) void
initialize
(PixelwiseRenderer renderer, Scene scene) With this method the processor is initialized with the scene and other information of aPixelwiseRenderer
.protected void
protected void
Methods inherited from class de.grogra.ray2.tracing.RayProcessorBase
dup, getColorFromRay, getIOR, getLightProcessor, initializeBeforeTracing, setLightProcessor, setRecursionDepth
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
appendStatistics
-
Field Details
-
BRIGHTNESS
- See Also:
-
-
Constructor Details
-
PathTracer
public PathTracer()
-
-
Method Details
-
initLocals
protected void initLocals()- Overrides:
initLocals
in classRayProcessorBase
-
initialize
Description copied from interface:RayProcessor
With this method the processor is initialized with the scene and other information of aPixelwiseRenderer
.- Specified by:
initialize
in interfaceRayProcessor
- Overrides:
initialize
in classRayProcessorBase
- Parameters:
renderer
- the renderer which provides the needed informationscene
- the scene which is rendered
-
mergeStatistics
- Overrides:
mergeStatistics
in classRayProcessorBase
-
appendStatisticsImpl
- Specified by:
appendStatisticsImpl
in classProcessorBase
-