|
||||||||||
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.testing.SpecularTransmission
public class SpecularTransmission
Represents perfect specular transmission.
Field Summary | |
---|---|
static java.lang.String |
ETA_I
|
static java.lang.String |
ETA_T
|
double |
etaI
Index of refraction for incoming media. |
double |
etaT
Index of refraction for transmitted media. |
Fresnel |
fresnel
Fresnel term. |
static java.lang.String |
FRESNEL
|
static RegPiece |
reg
Static registration instance for this class. |
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 |
Constructor Summary | |
---|---|
SpecularTransmission()
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. |
protected double |
getCosT(double ei,
double et,
double z)
Computes cosinus of transmitted ray. |
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 |
pdf(boolean worldCoords,
MicroFacet mf,
double[] in,
double[] out)
Returns 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. |
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 |
---|
colorBSSRDF, getOrigColor, localToWorld, monoBSSRDF, setColor, 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 Fresnel fresnel
public double etaI
public double etaT
public static final java.lang.String FRESNEL
public static final java.lang.String ETA_I
public static final java.lang.String ETA_T
public static final RegPiece reg
Constructor Detail |
---|
public SpecularTransmission()
Method Detail |
---|
public double monoBSSRDF(boolean worldCoords, double[] in, double[] out, double[] normal, double[] tangent, int mask)
monoBSSRDF
in interface BSSRDF
monoBSSRDF
in class LambertianModel
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?
#monoBSSRDF(MicroFacet,double[],double[],int)
,
#colorBSSRDF(double[],double[],double[],int,double[])
public double[] colorBSSRDF(boolean worldCoords, double[] in, double[] out, double[] normal, double[] tangent, int mask, double[] result)
colorBSSRDF
in interface BSSRDF
colorBSSRDF
in class LambertianModel
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
.
#monoBSSRDF(double[],double[],double[],int)
,
#colorBSSRDF(MicroFacet,double[],double[],int,double[])
public double scatter(MicroFacet mf, double[] in, double u, double v, int mask, double[] out, double[] brdf)
scatter
in interface BSSRDF
scatter
in class LambertianModel
mf
- 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 BSSRDF
pdf
in class LambertianModel
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 direction.out
- Output direction.mf
- The MicroFacet
(point on surface of some solid).public int type()
type
in interface BSSRDF
type
in class LambertianModel
protected double getCosT(double ei, double et, double z)
ei
- Index of refraction for incoming media.et
- Index of refraction for transmitted media.z
- Z coordinate of incoming direction (local coordinates!).public void set(java.lang.String key, java.lang.Object value)
set
in interface Property
set
in class LambertianModel
key
- Key string.value
- The new value.Property.commit()
public java.lang.Object get(java.lang.String key)
get
in interface Property
get
in class LambertianModel
key
- 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 |