cz.cuni.jagrlib.testing
Class PathTracing

java.lang.Object
  extended by cz.cuni.jagrlib.DefaultProperty
      extended by cz.cuni.jagrlib.Piece
          extended by cz.cuni.jagrlib.DefaultImageFunction
              extended by cz.cuni.jagrlib.testing.DefaultRenderer
                  extended by cz.cuni.jagrlib.testing.PathTracing
All Implemented Interfaces:
Breakable, ImageFunction, Property, TimeDependent, Template

public class PathTracing
extends DefaultRenderer

Path tracing of JGL scenes.

Since:
0.26
See Also:
PathTracing.java

Nested Class Summary
 
Nested classes/interfaces inherited from class cz.cuni.jagrlib.testing.DefaultRenderer
DefaultRenderer.Reflections, DefaultRenderer.Sampling
 
Field Summary
protected static java.lang.String CATEGORY
          Object category.
static java.lang.String DIRECT
           
protected  LightMap global
          Light map for direct photon storing.
static java.lang.String INDIRECT
           
static java.lang.String LOG
           
protected  int numRays
          Number of traced reflected rays for indirect illumination.
static java.lang.String OCCLUSION
           
static java.lang.String REFLECTIONS
           
static RegPiece reg
          Static registration instance for this class.
static java.lang.String SAMPLING
           
static java.lang.String SHADOW_RAYS
           
protected  boolean shadowPhotons
          Are they used shadow photons?
static java.lang.String TEXTURES
           
protected  LightTracing tracer
          Light tracer to compute illumination of scene.
protected  boolean useCaustics
          True if caustics should be used.
protected  boolean useDirect
          True if direct illumination should be used.
protected  boolean useIndirect
          True if indirect illumination should be used.
 
Fields inherited from class cz.cuni.jagrlib.testing.DefaultRenderer
actOrder, actTotal, camera, dataMask, HASH_LIGHT, HASH_TEXTURE, inter, isInit, numShadowRays, occlusion, reflections, rnd, sampling, scene, useTextures, xA, xK, yA, yK
 
Fields inherited from class cz.cuni.jagrlib.DefaultImageFunction
background, time, xMax, xMin, yMax, yMin
 
Fields inherited from class cz.cuni.jagrlib.Piece
channels, info, pl, plugs, TEMPLATE_TYPE, userBreak
 
Fields inherited from interface cz.cuni.jagrlib.iface.ImageFunction
BACKGROUND_COLOR
 
Fields inherited from interface cz.cuni.jagrlib.iface.Property
LOGGING, STATISTICS, TEXT_DESCRIPTION
 
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
 
Constructor Summary
PathTracing()
           
 
Method Summary
 java.lang.Object get(java.lang.String key)
          Gets the given property.
protected  boolean init()
          Prepare scene for rendering.
 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.
protected  long shade(int level, double importance, double[] p0, double[] p1, double[] color)
          Recursive shading function - computes color contribution of the given ray (shot from the origin p0 into direction vector p1).
 
Methods inherited from class cz.cuni.jagrlib.testing.DefaultRenderer
assertScene, directIllumination, getSample, getTime, getTimeInterval, sampleBSDF, sampleLightSource, setBounds, setTime, specular
 
Methods inherited from class cz.cuni.jagrlib.DefaultImageFunction
getBounds, getSample
 
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
 
Methods inherited from interface cz.cuni.jagrlib.iface.Property
commit
 

Field Detail

global

protected LightMap global
Light map for direct photon storing.


tracer

protected LightTracing tracer
Light tracer to compute illumination of scene.


numRays

protected int numRays
Number of traced reflected rays for indirect illumination.


useDirect

protected boolean useDirect
True if direct illumination should be used.


useCaustics

protected boolean useCaustics
True if caustics should be used.


useIndirect

protected boolean useIndirect
True if indirect illumination should be used.


shadowPhotons

protected boolean shadowPhotons
Are they used shadow photons?


DIRECT

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

SHADOW_RAYS

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

SAMPLING

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

INDIRECT

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

REFLECTIONS

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

OCCLUSION

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

TEXTURES

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

LOG

public static final java.lang.String LOG
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

PathTracing

public PathTracing()
Method Detail

init

protected boolean init()
Prepare scene for rendering.

Overrides:
init in class DefaultRenderer

shade

protected long shade(int level,
                     double importance,
                     double[] p0,
                     double[] p1,
                     double[] color)
Recursive shading function - computes color contribution of the given ray (shot from the origin p0 into direction vector p1). Recursion is stopped by a hybrid method: importance and level are checked.

Overrides:
shade in class DefaultRenderer
Parameters:
level - Actual recursion depth.
importance - Importance of the actual ray.
p0 - Ray origin.
p1 - Direction vector of the ray.
color - Pre-allocated array to hold result color vector (double[1] for monochrome images, double[3] for RGB images, larger arrays can be used for more complex spectral sampling).
Returns:
Hash-value (ray sub-signature) used for adaptive subsampling.
See Also:
#minImportance, #maxLevel, DefaultRenderer.scene, DefaultRenderer.inter

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.