|
||||||||||
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.DefaultLightSource
cz.cuni.jagrlib.testing.StaticAreaLightSource
public class StaticAreaLightSource
Square light source shining non-uniformly (amount of power depends on divergence of the photon direction) through the whole hemisphere which lies on front side of the face.
Field Summary | |
---|---|
protected double[] |
dim
Dimming polynom coefficients: light is dimmed by the factor of dim[0] + dim[1] * D + dim[2] * D * D . |
static java.lang.String |
KEY_DIM
JGL script key: dim. |
protected double[] |
lightColor
Color of the source: 1D for monochrome source, 3D for RGB
color space, or more for complex spectrum sampled spaces. |
static java.lang.String |
LL_VERTEX
JGL script key: position of low left vertex. |
static java.lang.String |
LR_VERTEX
JGL script key: position of low right vertex. |
protected TrMatrix |
m
TBN (tangent, binormal, normal) matrix. |
protected double[] |
normal
Normal of the light. |
static RegPiece |
reg
Static registration instance for this class. |
protected RandomJames |
rnd
Random number generator. |
static java.lang.String |
UL_VERTEX
JGL script key: position of up left vertex. |
static java.lang.String |
UR_VERTEX
JGL script key: position of up right vertex. |
protected double[] |
vertexLL
Coordinates of low left vertex. |
protected double[] |
vertexLR
Coordinates of low right vertex. |
protected double[] |
vertexUL
Coordinates of up left vertex. |
protected double[] |
vertexUR
Coordinates of up right vertex. |
Fields inherited from class cz.cuni.jagrlib.DefaultLightSource |
---|
CATEGORY, inter, KEY_LIGHT, PARAMS, plugInter, scriptName, 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.LightSource |
---|
COLOR |
Fields inherited from interface cz.cuni.jagrlib.iface.Property |
---|
LOGGING, STATISTICS, TEXT_DESCRIPTION |
Constructor Summary | |
---|---|
StaticAreaLightSource()
|
Method Summary | |
---|---|
protected double |
area()
Computes area of rectangle. |
java.lang.Object |
get(java.lang.String key)
Gets the given property. |
boolean |
getDirection(MicroFacet mf,
double[] dir)
Returns light direction between the source and the given MicroFacet . |
boolean |
getIntensity(MicroFacet mf,
double[] color)
Returns light intensity coming from the source to the given MicroFacet . |
protected double |
heron(double[] A,
double[] B,
double[] C)
Computes area of triangle by Heron's formula. |
boolean |
isDeltaLight()
Is delta light? |
boolean |
lights(MicroFacet mf)
Lighting test from the source to the given MicroFacet . |
double |
pdf(double[] point,
double[] normal,
double[] dir)
Return probability density function. |
protected void |
readScript()
Read data from JGL script. |
double |
sample(double u1,
double v1,
double u2,
double v2,
double[] pos,
double[] dir,
double[] power)
Generates one photon leaving this light source. |
boolean |
sample(MicroFacet mf,
double u,
double v,
double[] color,
double[] dir,
double[] pdf,
boolean testVisibility)
Sample the light by one shadow ray. |
void |
set(java.lang.String key,
java.lang.Object value)
Sets the given property. |
boolean |
setParams(double[] urVertex,
double[] ulVertex,
double[] llVertex,
double[] lrVertex,
double[] color,
double[] dimming)
Set light source parameters. |
static int |
setTemplate(Template t,
int ord)
General-purpose registration routine. |
java.lang.String |
toString()
For debugging purposes only. |
Methods inherited from class cz.cuni.jagrlib.DefaultLightSource |
---|
assertInter, getDirection, getIntensity, lights, setIntersectable |
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, wait, wait, wait |
Methods inherited from interface cz.cuni.jagrlib.iface.Property |
---|
commit |
Field Detail |
---|
protected final RandomJames rnd
protected double[] vertexUR
protected double[] vertexUL
protected double[] vertexLL
protected double[] vertexLR
protected double[] normal
protected double[] lightColor
1D
for monochrome source, 3D
for RGB
color space, or more for complex spectrum sampled spaces.
protected double[] dim
dim[0] + dim[1] * D + dim[2] * D * D
.
Can be null
for no dimming..
protected TrMatrix m
public static final java.lang.String UR_VERTEX
public static final java.lang.String UL_VERTEX
public static final java.lang.String LL_VERTEX
public static final java.lang.String LR_VERTEX
public static final java.lang.String KEY_DIM
public static final RegPiece reg
Constructor Detail |
---|
public StaticAreaLightSource()
Method Detail |
---|
public boolean setParams(double[] urVertex, double[] ulVertex, double[] llVertex, double[] lrVertex, double[] color, double[] dimming)
power
- Power of light.urVertex
- Up right vertex of square.ulVertex
- Up left vertex of square.llVertex
- Low left vertex of square.lrVertex
- Low right vertex of square.color
- Source color/intensity (can be either 1D /for monochrome computing/,
3D /for RGB color system/ or greater /for more complex spectral color
sampling/).protected void readScript()
public java.lang.String toString()
toString
in class java.lang.Object
public boolean lights(MicroFacet mf)
MicroFacet
.
lights
in interface LightSource
lights
in class DefaultLightSource
mf
- The checked MicroFacet
(point on surface of some solid).
true
if the light source lights on the given point.getIntensity(cz.cuni.jagrlib.MicroFacet, double[])
,
getDirection(cz.cuni.jagrlib.MicroFacet, double[])
public boolean getIntensity(MicroFacet mf, double[] color)
MicroFacet
.
getIntensity
in interface LightSource
getIntensity
in class DefaultLightSource
mf
- The MicroFacet
(point on surface of some solid).color
- Pre-allocated double[C]
array to hold result - light intensity
coming from the source to the given point (C
can be either 1
/for monochrome computing/, 3 /for RGB color system/ or greater /for more
complex spectral color sampling/).
true
if the light source can light on the given point (cannot
replace the lights(cz.cuni.jagrlib.MicroFacet)
call!).lights(cz.cuni.jagrlib.MicroFacet)
,
getDirection(cz.cuni.jagrlib.MicroFacet, double[])
public boolean getDirection(MicroFacet mf, double[] dir)
MicroFacet
.
getDirection
in interface LightSource
getDirection
in class DefaultLightSource
mf
- The MicroFacet
(point on surface of some solid).dir
- Pre-allocated array to hold the result - normalised direction vector
from the MicroFacet
to the light source.
false
if the light source is not directional (thus dir
is irrelevant).lights(cz.cuni.jagrlib.MicroFacet)
,
getIntensity(cz.cuni.jagrlib.MicroFacet, double[])
public boolean sample(MicroFacet mf, double u, double v, double[] color, double[] dir, double[] pdf, boolean testVisibility)
sample
in interface LightSource
sample
in class DefaultLightSource
mf
- The MicroFacet
(point on surface of some solid).u
- Uniform random number.v
- Uniform random number.color
- Pre-allocated double[C] array to hold result - light intensity
coming from the source to the given point (C can be either 1
/for monochrome computing/, 3 /for RGB color system/ or greater /for more
complex spectral color sampling/).dir
- Pre-allocated array to hold the result - normalised direction vector
from the MicroFacet
to the light source.pdf
- Probability density function (output variable).
True
if the light is visible.public double sample(double u1, double v1, double u2, double v2, double[] pos, double[] dir, double[] power)
sample
in interface LightSource
sample
in class DefaultLightSource
u1
- Uniform random number.v1
- Uniform random number.u2
- Uniform random number.v2
- Uniform random number.pos
- Pre-allocated array which holds a point on the light source
(an origin of direction).dir
- Output direction in world coordinates. Pre-allocated array.power
- Power of given light source (if you wanna get power
of this photon, you have to divide this power by number
of photons). Pre-allocated array.
public double pdf(double[] point, double[] normal, double[] dir)
pdf
in interface LightSource
pdf
in class DefaultLightSource
point
- Point on the surface.normal
- Normal at this point.dir
- Direction from the point to the light.public boolean isDeltaLight()
isDeltaLight
in interface LightSource
isDeltaLight
in class DefaultLightSource
protected double area()
protected double heron(double[] A, double[] B, double[] C)
public void set(java.lang.String key, java.lang.Object value)
set
in interface Property
set
in class DefaultProperty
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 DefaultProperty
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 |