cz.cuni.jagrlib.testing
Class PhotonTracing

java.lang.Object
  extended by cz.cuni.jagrlib.DefaultProperty
      extended by cz.cuni.jagrlib.Piece
          extended by cz.cuni.jagrlib.testing.PhotonTracing
All Implemented Interfaces:
Breakable, LightTracing, Property, Template

public class PhotonTracing
extends Piece
implements LightTracing

Illuminates scene by tracing photons through the scene and saving them into the map.

Since:
0.26
See Also:
PhotonTracing.java

Field Summary
protected static java.lang.String CATEGORY
          Object category.
protected  LightMap caustic
          Caustic map for cautic photon storing.
static java.lang.String CAUSTICS
           
protected  int dataMask
          Mask used in MicroFacet.assertAttributes(int).
static java.lang.String DIRECT
           
protected  LightMap global
          Light map for photon storing.
static java.lang.String INDIRECT
           
protected  Intersectable inter
          Accelerator: intersection between scene and ray.
protected  boolean isInit
          Was the tracer initialized?
protected  boolean isMapFull
          Is the photon map full?
static RegPiece reg
          Static registration instance for this class.
protected  RandomJames rnd
          Random number generator.
static java.lang.String SAMPLING
           
protected  boolean savePhotonsInLights
          Should be photons saved into the photon map when they are still in light source?
protected  RTScene scene
          Accelerator: scene.
protected  LightMap shadow
          Shadow map for shadow photon storing.
static java.lang.String SHADOW
           
protected static java.lang.String TEMPLATE_NAME
          Object template identifier.
protected  boolean useCaustics
          Use caustics?
protected  boolean useDirect
          Use direct illumination?
protected  boolean useIndirect
          Use illumination illumination?
protected  boolean useShadow
          Use shadow photons?
protected  LightMap volume
          Volume map for volume photon storing.
 
Fields inherited from class cz.cuni.jagrlib.Piece
channels, info, pl, plugs, TEMPLATE_TYPE, userBreak
 
Fields inherited from interface cz.cuni.jagrlib.Template
ALL_PLUGS, C_1D, C_2D, C_3D, C_ALPHA, C_BINARY, C_BREP, C_CAMERA, C_CIRCLE, C_CLIP, C_COMPRESSION, C_CURVE, C_DATA, C_DRAW, C_EDITOR, C_ELLIPSE, C_FILL, C_FILTER, C_FLOAT, C_FUNCTION, C_IMAGE, C_INTEGER, C_IO, C_LIGHT, C_LINE, C_METRIC, C_POLYGON, C_PROJECTION, C_RADIOSITY, C_RASTER, C_RENDER, C_SAMPLE, C_SCENE, C_SET, C_SOLID, C_TEXT, C_TRANSFORM, C_VECTOR, C_VIEWER, C_WORKER, CAT_EMPTY, EMPTY, IFACE, JAGRLIB, JAGRLIB2, MANIPULATOR_COMBO, MANIPULATOR_CUSTOM, MANIPULATOR_DEFAULT, MANIPULATOR_MULTILINE, PL_ALPHAMASK, PL_BITMASK, PL_CAUSTIC, PL_CODEC, PL_COLORMAP, PL_COMPARE, PL_DATA, PL_DIRECT, PL_EDITOR, PL_FILTER, PL_FUNCTION, PL_IMAGE, PL_IMPORT, PL_INPUT, PL_INTERSECTION, PL_LIGHTSOURCE, PL_ORDER, PL_OUTPUT, PL_PALETTE, PL_PHOTON, PL_PROPERTY, PL_QUANTIZER, PL_RASTER, PL_RENDER, PL_SHADOW, PL_STREAM, PL_TRANSFORM, PL_TRIGGER, PL_VOLUME, PL_WINDOW, TYPE_BOOLEAN, TYPE_DOUBLE, TYPE_FLOAT, TYPE_INTEGER, TYPE_LONG, TYPE_OBJECT, TYPE_STRING
 
Fields inherited from interface cz.cuni.jagrlib.iface.Property
LOGGING, STATISTICS, TEXT_DESCRIPTION
 
Constructor Summary
PhotonTracing()
           
 
Method Summary
 java.lang.Object get(java.lang.String key)
          Gets the given property.
 void illuminateScene()
          Illuminate scene (transfer light from the light sources to the scene).
 boolean init()
          Initializes everything important and builds photon map by photon tracing.
 void set(java.lang.String key, java.lang.Object value)
          Sets the given property.
static int setTemplate(Template t, int ord)
          General-purpose registration routine.
 void tracePhoton(int level, boolean prevHitSpec, double importance, float[] power, double[] pos, double[] dir)
          Trace photon through the scene by recursive calling of this function.
protected  void traceShadowPhoton(double[] pos, double[] dir, float[] power)
          Trace shadow ray and save shadow photon.
 
Methods inherited from class cz.cuni.jagrlib.Piece
className, connect, findPlug, findPlug, getInfo, getInterface, getInterface, getPlug, getReg, init, isCompatible, isCompatible, isConnected, logError, logWarning, myInterface, newInputPlug, newOptOutputPlug, newOutputPlug, newPlug, noTemplates, propBegin, propBounds, propDefault, propEnd, propEnum, propManipulator, propManipulator, setProgressListener, setRegStrings, setTemplateDynamic, stop
 
Methods inherited from class cz.cuni.jagrlib.DefaultProperty
booleanProperty, booleanProperty, colorDoubleProperty, colorProperty, commit, doubleProperty, doubleProperty, doubleProperty, enumProperty, floatProperty, floatProperty, floatProperty, intProperty, intProperty, intProperty, longProperty, longProperty, longProperty, set, stringProperty
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

scene

protected RTScene scene
Accelerator: scene.


inter

protected Intersectable inter
Accelerator: intersection between scene and ray.


global

protected LightMap global
Light map for photon storing.


caustic

protected LightMap caustic
Caustic map for cautic photon storing.


shadow

protected LightMap shadow
Shadow map for shadow photon storing.


volume

protected LightMap volume
Volume map for volume photon storing.


rnd

protected final RandomJames rnd
Random number generator.


dataMask

protected int dataMask
Mask used in MicroFacet.assertAttributes(int).


useDirect

protected boolean useDirect
Use direct illumination?


useIndirect

protected boolean useIndirect
Use illumination illumination?


useCaustics

protected boolean useCaustics
Use caustics?


useShadow

protected boolean useShadow
Use shadow photons?


savePhotonsInLights

protected boolean savePhotonsInLights
Should be photons saved into the photon map when they are still in light source? In the case of direct visualization may be useful to set value on the true, otherwise lights ourselfs won't be visible.


isMapFull

protected boolean isMapFull
Is the photon map full?


isInit

protected boolean isInit
Was the tracer initialized?


SAMPLING

public static final java.lang.String SAMPLING
See Also:
Constant Field Values

DIRECT

public static final java.lang.String DIRECT
See Also:
Constant Field Values

INDIRECT

public static final java.lang.String INDIRECT
See Also:
Constant Field Values

CAUSTICS

public static final java.lang.String CAUSTICS
See Also:
Constant Field Values

SHADOW

public static final java.lang.String SHADOW
See Also:
Constant Field Values

TEMPLATE_NAME

protected static final java.lang.String TEMPLATE_NAME
Object template identifier.

See Also:
Constant Field Values

CATEGORY

protected static final java.lang.String CATEGORY
Object category.

See Also:
Constant Field Values

reg

public static final RegPiece reg
Static registration instance for this class. Automatically initialized in class-loading time.

Constructor Detail

PhotonTracing

public PhotonTracing()
Method Detail

illuminateScene

public void illuminateScene()
Illuminate scene (transfer light from the light sources to the scene).

Specified by:
illuminateScene in interface LightTracing

init

public boolean init()
Initializes everything important and builds photon map by photon tracing.


tracePhoton

public void tracePhoton(int level,
                        boolean prevHitSpec,
                        double importance,
                        float[] power,
                        double[] pos,
                        double[] dir)
Trace photon through the scene by recursive calling of this function.

Parameters:
prevHitSpec - True if photon hit specular material in previous intersection.

traceShadowPhoton

protected void traceShadowPhoton(double[] pos,
                                 double[] dir,
                                 float[] power)
Trace shadow ray and save shadow photon.


set

public void set(java.lang.String key,
                java.lang.Object value)
Sets the given property.

Specified by:
set in interface Property
Overrides:
set in class DefaultProperty
Parameters:
key - Key string.
value - The new value.
See Also:
Property.commit()

get

public java.lang.Object get(java.lang.String key)
Gets the given property.

Specified by:
get in interface Property
Overrides:
get in class DefaultProperty
Parameters:
key - Key string.
Returns:
The actual value or null.

setTemplate

public static int setTemplate(Template t,
                              int ord)
General-purpose registration routine. Sets all plugs, strings, etc. to the given Template.