cz.cuni.jagrlib.testing
Class OrenNayarModel

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

public class OrenNayarModel
extends LambertianModel

Oren-Nayar shading model.

See Also:
OrenNayarModel.java

Field Summary
 double A
          Precomputed value.
 double B
          Precomputed value.
static RegPiece reg
          Static registration instance for this class.
 double sigma
          Angle.
static java.lang.String SIGMA
           
 
Fields inherited from class cz.cuni.jagrlib.testing.LambertianModel
CATEGORY, color, REFLECTIONS, TEMPLATE_NAME
 
Fields inherited from class cz.cuni.jagrlib.Piece
channels, info, pl, plugs, TEMPLATE_TYPE, userBreak
 
Fields inherited from interface cz.cuni.jagrlib.iface.BSSRDF
COMP_ALL, COMP_DIFFUSE, COMP_GLOSSY, COMP_SPEC_REFLECTION, COMP_SPEC_REFRACTION, COMP_SPECULAR, MATERIAL_COLOR, MATERIAL_H, MATERIAL_KA, MATERIAL_KD, MATERIAL_KS, MATERIAL_KT, MATERIAL_N
 
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
OrenNayarModel()
          Default constructor.
 
Method Summary
 double[] colorBSSRDF(boolean worldCoords, double[] in, double[] out, double[] normal, double[] tangent, int mask, double[] result)
          Returns the requested BSSRDF sample (BSSRDF is treated as band-color).
 java.lang.Object get(java.lang.String key)
          Gets the given property.
 double monoBSSRDF(boolean worldCoords, double[] in, double[] out, double[] normal, double[] tangent, int mask)
          Returns the requested BSSRDF sample (BSSRDF is treated as monochrome).
 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.
 
Methods inherited from class cz.cuni.jagrlib.testing.LambertianModel
colorBSSRDF, getOrigColor, localToWorld, monoBSSRDF, pdf, scatter, setColor, type, worldToLocal
 
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

sigma

public double sigma
Angle.


A

public double A
Precomputed value.


B

public double B
Precomputed value.


SIGMA

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

OrenNayarModel

public OrenNayarModel()
Default constructor.

Method Detail

monoBSSRDF

public double monoBSSRDF(boolean worldCoords,
                         double[] in,
                         double[] out,
                         double[] normal,
                         double[] tangent,
                         int mask)
Returns the requested BSSRDF sample (BSSRDF is treated as monochrome).

Specified by:
monoBSSRDF in interface BSSRDF
Overrides:
monoBSSRDF in class LambertianModel
Parameters:
worldCoords - Should be set to true if vectors in and out are in world coordinates and to false if vectors in and out are in local coordinates.
in - Input ray direction (double[3] or double[4]).
out - Output (viewing) ray direction (double[3] or double[4]).
normal - Normal vector of a surface.
tangent - Tangent vector of a surface.
mask - Which light components are to be computed?
Returns:
BSSRDF coefficient f(in->out).
See Also:
#monoBSSRDF(MicroFacet,double[],double[],int), #colorBSSRDF(double[],double[],double[],int,double[])

colorBSSRDF

public double[] colorBSSRDF(boolean worldCoords,
                            double[] in,
                            double[] out,
                            double[] normal,
                            double[] tangent,
                            int mask,
                            double[] result)
Returns the requested BSSRDF sample (BSSRDF is treated as band-color).

Specified by:
colorBSSRDF in interface BSSRDF
Overrides:
colorBSSRDF in class LambertianModel
Parameters:
worldCoords - Should be set to true if vectors in and out are in world coordinates and to false if vectors in and out are in local coordinates.
in - Input ray direction (double[3] or double[4]).
out - Output (viewing) ray direction (double[3] or double[4]).
normal - Normal vector of a surface.
tangent - Tangent vector of a surface.
mask - Which light components are to be computed?
result - Pre-allocated double[C] array to hold BRDF coefficients f(in->out) (C can be either 1 /for monochrome computing/, 3 /for RGB color system/ or greater /for more complex spectral color sampling/). Can be null.
Returns:
Output BSSRDF spectral coefficients.
See Also:
#monoBSSRDF(double[],double[],double[],int), #colorBSSRDF(MicroFacet,double[],double[],int,double[])

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 LambertianModel
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 LambertianModel
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.