|
||||||||||
| 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.testing.LambertianModel
cz.cuni.jagrlib.piece.PhongModel
public class PhongModel
Phong shading model (with constant or Schlick K() term).
| Field Summary | |
|---|---|
protected static java.lang.String |
CATEGORY
Object category. |
double |
cosTotal
Limit cos-value for total reflection. |
int |
h
Specular reflection exponent. |
double |
ka
Ambient-light coefficient. |
double |
kd
Diffuse reflection coefficient. |
double |
ks
Specular reflection coefficient. |
double |
kt
Transmission (refraction) coefficient. |
double |
n
Relative index of refraction. |
double[] |
origColor
Original color of the solid surface. |
static RegPiece |
reg
Static registration instance for this class. |
double |
sch
Schlick blending coefficient ( 0.0 .. non-Schlick, 1.0 .. |
protected static java.lang.String |
TEMPLATE_NAME
Object template identifier. |
| Fields inherited from class cz.cuni.jagrlib.testing.LambertianModel |
|---|
color, REFLECTIONS |
| 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 |
| Constructor Summary | |
|---|---|
PhongModel()
Default constructor. |
|
| Method Summary | |
|---|---|
protected double[] |
color(double[] in,
double[] out,
double[] normal,
int mask,
double[] result)
Common computation for color BRDF sample (BRDF is treated as band-color). |
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). |
double[] |
colorBSSRDF(boolean worldCoords,
MicroFacet mf,
double[] in,
double[] out,
int mask,
double[] result)
Returns the requested BRDF sample (BRDF is treated as band-color). |
java.lang.Object |
get(java.lang.String key)
Gets the given property. |
double[] |
getOrigColor(double[] color)
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,
int mask)
Common computation for monochrome BRDF sample (BRDF is treated as monochrome). |
double |
monoBSSRDF(boolean worldCoords,
double[] in,
double[] out,
double[] normal,
double[] tangent,
int mask)
Returns the requested BSSRDF sample (BSSRDF is treated as monochrome). |
double |
monoBSSRDF(boolean worldCoords,
MicroFacet mf,
double[] in,
double[] out,
int mask)
Returns the requested BRDF sample (BRDF is treated as monochrome). |
double |
pdf(boolean worldCoords,
MicroFacet mf,
double[] in,
double[] out)
Return the probability density function. |
double |
scatter(MicroFacet mf,
double[] in,
double u,
double v,
int mask,
double[] out,
double[] brdf)
Scatter ray according to the light model. |
void |
set(java.lang.String key,
java.lang.Object value)
Sets the given property. |
void |
setColor(double[] color)
Sets the actual color (for the given BRDF data). |
static int |
setTemplate(Template t,
int ord)
General-purpose registration routine. |
int |
type()
Returns the type of BRDF. |
| Methods inherited from class cz.cuni.jagrlib.testing.LambertianModel |
|---|
localToWorld, 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 |
|---|
public double[] origColor
public double ka
public double kd
public double ks
public int h
public double kt
public double n
public double cosTotal
public double sch
0.0 .. non-Schlick, 1.0 .. Schlick).
protected static final java.lang.String TEMPLATE_NAME
protected static final java.lang.String CATEGORY
public static final RegPiece reg
| Constructor Detail |
|---|
public PhongModel()
| Method Detail |
|---|
protected double mono(double[] in,
double[] out,
double[] normal,
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,
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 double monoBSSRDF(boolean worldCoords,
double[] in,
double[] out,
double[] normal,
double[] tangent,
int mask)
monoBSSRDF in interface BSSRDFmonoBSSRDF in class LambertianModelworldCoords - 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?
#monoBSSRDF(MicroFacet,double[],double[],int),
#colorBSSRDF(double[],double[],double[],int,double[])
public double monoBSSRDF(boolean worldCoords,
MicroFacet mf,
double[] in,
double[] out,
int mask)
MicroFacet (point on surface of some solid).
monoBSSRDF in interface BSSRDFmonoBSSRDF in class LambertianModelmf - 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?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.
#monoBRDF(double[],double[],double[],Property,int),
#colorBRDF(MicroFacet,double[],double[],int,double[]),
MicroFacet#material
public double[] colorBSSRDF(boolean worldCoords,
double[] in,
double[] out,
double[] normal,
double[] tangent,
int mask,
double[] result)
colorBSSRDF in interface BSSRDFcolorBSSRDF in class LambertianModelworldCoords - 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.
#monoBSSRDF(double[],double[],double[],int),
#colorBSSRDF(MicroFacet,double[],double[],int,double[])
public double[] colorBSSRDF(boolean worldCoords,
MicroFacet mf,
double[] in,
double[] out,
int mask,
double[] result)
MicroFacet (point on surface of some solid).
colorBSSRDF in interface BSSRDFcolorBSSRDF in class LambertianModelmf - 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.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.
#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.
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#materialpublic double[] getOrigColor(double[] color)
getOrigColor in interface BSSRDFgetOrigColor in class LambertianModelcolor - 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)
setColor in interface BSSRDFsetColor in class LambertianModelcolor - 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 double scatter(MicroFacet mf,
double[] in,
double u,
double v,
int mask,
double[] out,
double[] brdf)
scatter in interface BSSRDFscatter in class LambertianModelmf - The MicroFacet (point on surface of some solid).in - Input direction (should look from the hit point)..u - Random uniform number.v - Random uniform number.mask - Which light components are to be computed?out - Output direction in world coordinates.brdf - 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/).
public double pdf(boolean worldCoords,
MicroFacet mf,
double[] in,
double[] out)
pdf in interface BSSRDFpdf in class LambertianModelin - Input direction.out - Output direction.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.mf - The MicroFacet (point on surface of some solid).public int type()
type in interface BSSRDFtype in class LambertianModel
public void set(java.lang.String key,
java.lang.Object value)
set in interface Propertyset in class LambertianModelkey - Key string.value - The new value.Property.commit()public java.lang.Object get(java.lang.String key)
get in interface Propertyget in class LambertianModelkey - Key string.
null.
public static int setTemplate(Template t,
int ord)
|
||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||