|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Objectcz.cuni.jagrlib.DefaultProperty
cz.cuni.jagrlib.Piece
cz.cuni.jagrlib.piece.PhongModel
public class PhongModel
Phong shading model (with constant or Schlick K() term).
Field Summary | |
---|---|
protected static String |
CATEGORY
Object category. |
static RegPiece |
reg
Static registration instance for this class. |
protected static String |
TEMPLATE_NAME
Object template identifier. |
Fields inherited from class cz.cuni.jagrlib.Piece |
---|
channels, info, pl, plugs, TEMPLATE_TYPE, userBreak |
Fields inherited from interface cz.cuni.jagrlib.iface.LightModel |
---|
COMP_ALL, COMP_DIFFUSE, 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_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_PROPERTY, PL_QUANTIZER, PL_RASTER, PL_RENDER, PL_STREAM, PL_TRANSFORM, PL_TRIGGER, PL_WINDOW, TYPE_BOOLEAN, TYPE_DOUBLE, TYPE_FLOAT, TYPE_INTEGER, TYPE_LONG, TYPE_OBJECT, TYPE_STRING |
Constructor Summary | |
---|---|
PhongModel()
|
Method Summary | |
---|---|
protected double[] |
color(double[] in,
double[] out,
double[] normal,
PhongMaterial d,
int mask,
double[] result)
Common computation for color BRDF sample (BRDF is treated as band-color). |
double[] |
colorBRDF(double[] in,
double[] out,
double[] normal,
Property data,
int mask,
double[] result)
Returns the requested BRDF sample (BRDF is treated as band-color). |
double[] |
colorBRDF(MicroFacet mf,
double[] in,
double[] out,
int mask,
double[] result)
Returns the requested BRDF sample (BRDF is treated as band-color). |
Property |
createMaterial()
Create material object for the Phong shading model. |
double[] |
getOrigColor(double[] color,
Property data)
Retrieves the original color (defining surface color). |
double[] |
lightSum(MicroFacet mf,
int order,
int total,
LightSource[] lights,
double[] out,
double[] result)
Accumulates light contributions from set of light sources through the given MicroFacet (point on surface of some solid) to the viewing direction. |
protected double |
mono(double[] in,
double[] out,
double[] normal,
PhongMaterial d,
int mask)
Common computation for monochrome BRDF sample (BRDF is treated as monochrome). |
double |
monoBRDF(double[] in,
double[] out,
double[] normal,
Property data,
int mask)
Returns the requested BRDF sample (BRDF is treated as monochrome). |
double |
monoBRDF(MicroFacet mf,
double[] in,
double[] out,
int mask)
Returns the requested BRDF sample (BRDF is treated as monochrome). |
void |
setColor(double[] color,
Property data)
Sets the actual color (for the given BRDF data). |
static int |
setTemplate(Template t,
int ord)
General-purpose registration routine. |
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, get, intProperty, intProperty, intProperty, longProperty, longProperty, longProperty, set, 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, get, set |
Field Detail |
---|
protected static final String TEMPLATE_NAME
protected static final String CATEGORY
public static final RegPiece reg
Constructor Detail |
---|
public PhongModel()
Method Detail |
---|
protected double mono(double[] in, double[] out, double[] normal, PhongMaterial d, int mask)
in
- Input ray direction (double[3]
or double[4]
).out
- Output (viewing) ray direction (double[3]
or
double[4]
).d
- BRDF parameters.mask
- Which light components are to be computed?
f(in->out)
.protected double[] color(double[] in, double[] out, double[] normal, PhongMaterial d, int mask, double[] result)
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.d
- BRDF parameters.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
.
public Property createMaterial()
createMaterial
in interface LightModel
public double monoBRDF(double[] in, double[] out, double[] normal, Property data, int mask)
monoBRDF
in interface LightModel
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.data
- Non-mandatory data object to hold BRDF state information.mask
- Which light components are to be computed?
f(in->out)
.monoBRDF(MicroFacet,double[],double[],int)
,
colorBRDF(double[],double[],double[],Property,int,double[])
public double monoBRDF(MicroFacet mf, double[] in, double[] out, int mask)
MicroFacet
(point on surface of some solid).
monoBRDF
in interface LightModel
mf
- The MicroFacet
(point on surface of some solid).in
- Input ray direction (double[3]
or double[4]
).out
- Output (viewing) ray direction (double[3]
or
double[4]
).mask
- Which light components are to be computed?
monoBRDF(double[],double[],double[],Property,int)
,
colorBRDF(MicroFacet,double[],double[],int,double[])
,
MicroFacet.material
public double[] colorBRDF(double[] in, double[] out, double[] normal, Property data, int mask, double[] result)
colorBRDF
in interface LightModel
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.data
- Non-mandatory data object to hold BRDF state information.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
.
monoBRDF(double[],double[],double[],Property,int)
,
colorBRDF(MicroFacet,double[],double[],int,double[])
public double[] colorBRDF(MicroFacet mf, double[] in, double[] out, int mask, double[] result)
MicroFacet
(point on surface of some solid).
colorBRDF
in interface LightModel
mf
- The MicroFacet
(point on surface of some solid).in
- Input ray direction (double[3]
or double[4]
).out
- Output (viewing) ray direction (double[3]
or
double[4]
).mask
- Which light components are to be computed?result
- Pre-allocated double[C]
array to hold BRDF coefficients
f(in->mf->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
.
monoBRDF(MicroFacet,double[],double[],int)
,
colorBRDF(double[],double[],double[],Property,int,double[])
,
MicroFacet.material
public double[] lightSum(MicroFacet mf, int order, int total, LightSource[] lights, double[] out, double[] result)
MicroFacet
(point on surface of some solid) to the viewing direction.
lightSum
in interface LightModel
mf
- The MicroFacet
(point on surface of some solid).order
- Order of this sample inside the actual pixel.total
- Total number of samples in the actual pixel.lights
- Set of light sources that can light the point.out
- Output (viewing) ray direction (double[3]
or
double[4]
).result
- Pre-allocated double[C]
array to hold BRDF coefficients
f(in->mf->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
, otherwise the
initial value will be preseved.
colorBRDF(MicroFacet,double[],double[],int,double[])
,
MicroFacet.material
public double[] getOrigColor(double[] color, Property data)
getOrigColor
in interface LightModel
color
- Pre-allocated double[C]
array to hold the color
(C
can be either 1 /for monochrome computing/, 3 /for RGB
color system/ or greater /for more complex spectral color sampling/). Can
be null
.data
- Data object with BRDF state information (optional).
public void setColor(double[] color, Property data)
setColor
in interface LightModel
color
- Color definition - double[C]
array
(C
can be either 1 /for monochrome computing/, 3 /for RGB
color system/ or greater /for more complex spectral color sampling/).data
- Data object with BRDF state information.public static int setTemplate(Template t, int ord)
|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |