|
||||||||||
| 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.Objectpublic boolean lights(MicroFacet mf)
MicroFacet.
lights in interface LightSourcelights in class DefaultLightSourcemf - 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 LightSourcegetIntensity in class DefaultLightSourcemf - 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 LightSourcegetDirection in class DefaultLightSourcemf - 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 LightSourcesample in class DefaultLightSourcemf - 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 LightSourcesample in class DefaultLightSourceu1 - 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 LightSourcepdf in class DefaultLightSourcepoint - Point on the surface.normal - Normal at this point.dir - Direction from the point to the light.public boolean isDeltaLight()
isDeltaLight in interface LightSourceisDeltaLight in class DefaultLightSourceprotected 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 Propertyset in class DefaultPropertykey - Key string.value - The new value.Property.commit()public java.lang.Object get(java.lang.String key)
get in interface Propertyget in class DefaultPropertykey - 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 | |||||||||