de.grogra.ray2.light
Class DefaultLightProcessor
java.lang.Object
de.grogra.ray2.tracing.ProcessorBase
de.grogra.ray2.light.DefaultLightProcessor
- All Implemented Interfaces:
- LightProcessor, java.lang.Cloneable
public class DefaultLightProcessor
- extends ProcessorBase
- implements LightProcessor
This class implements a standard LightProcessor
.
For lights which are not shadowless, it shoots a shadow ray
in order to check if the light source is visible at a specific
point. If this ray hits any object, the point is considered
to be in the shadow of the light.
- Author:
- Michael Tauer, Ole Kniemeyer
Methods inherited from class java.lang.Object |
equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
DefaultLightProcessor
public DefaultLightProcessor()
appendStatisticsImpl
protected void appendStatisticsImpl(java.lang.StringBuffer stats)
- Specified by:
appendStatisticsImpl
in class ProcessorBase
dup
public LightProcessor dup(Scene scene)
- Description copied from interface:
LightProcessor
- Returns a clone of this
LightProcessor
.
All constant variables are copied shallowly, state variables
are newly created and copied where necessary.
- Specified by:
dup
in interface LightProcessor
- Parameters:
scene
- duplicate of scene
- Returns:
- clone of this light processor
getLightRays
public void getLightRays(boolean frontFace,
Intersection desc,
RayList rays,
java.util.ArrayList cache,
java.util.Random rnd)
- Description copied from interface:
LightProcessor
- Adds all light rays that directly illuminate the specified
intersection point
is
to the list rays
.
frontFace
indicates whether the front face
(the side where the normal vector points to)
or the back face of the surface at the intersection point is to be
illuminated.
The cache
may be used freely by implementations
of this method in order to store some caching information.
Invokers of this method should provide the same cache for
similar situations. E.g., a raytracer should provide an own cache
for every node of the recursive raytracing tree.
- Specified by:
getLightRays
in interface LightProcessor
- Parameters:
frontFace
- illuminate front face or back face?desc
- the intersection pointrays
- all determined rays are added to this listcache
- the cache may be used freely by implementationsrnd
- pseudorandom generator
initialize
public void initialize(Scene scene,
int raytracerType,
java.util.Random rnd)
- Description copied from interface:
LightProcessor
- Initializes the light processor for use with the given
scene
.
- Specified by:
initialize
in interface LightProcessor
- Parameters:
scene
- the scene in which light rays are to be computedraytracerType
- type of raytracerrnd
- pseudorandom generator
(Environment.STANDARD_RAY_TRACER
or
Environment.PATH_TRACER
)
initLocals
protected void initLocals()
- Overrides:
initLocals
in class ProcessorBase
mergeStatistics
protected void mergeStatistics(ProcessorBase src)
- Overrides:
mergeStatistics
in class ProcessorBase
useGeometryTerm
public void useGeometryTerm(boolean use)
useOneSamplePerLight
public void useOneSamplePerLight(boolean one)