|
||||||||||
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.StaticSpotLightSource
public class StaticSpotLightSource
Static point light source.
Field Summary | |
---|---|
protected double |
cosFallOffStart
Cosinus of angle cosFallOffStart. |
protected double |
cosThetaMax
Cosinus of angle totalWidth. |
protected double[] |
dim
Dimming polynom coefficients: light is dimmed by the factor of dim[0] + dim[1] * D + dim[2] * D * D . |
protected double[] |
direction
Light source coordinates. |
static java.lang.String |
DIRECTION
JGL script key: light direction. |
static java.lang.String |
FALL_OFF_START
JGL script key: fall off start. |
protected double[] |
fallOffStart
Angle which defines inner cone. |
static java.lang.String |
KEY_DIM
JGL script key: dim. |
static java.lang.String |
KEY_POSITION
JGL script key: light position. |
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 |
PHOTONS
JGL script key: position of up right vertex. |
protected double[] |
position
Light source coordinates. |
static RegPiece |
reg
Static registration instance for this class. |
protected RandomJames |
rnd
Random number generator. |
protected double[] |
thetaMax
Angle which defines outer cone. |
static java.lang.String |
TOTAL_WIDTH
JGL script key: total width. |
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 | |
---|---|
StaticSpotLightSource()
|
Method Summary | |
---|---|
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 . |
protected double |
getFallOff(double[] dir)
Returns fall off for given direction. |
boolean |
getIntensity(MicroFacet mf,
double[] color)
Returns light intensity coming from the source to the given MicroFacet . |
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[] pos,
double[] dir,
double[] color,
double width,
double fallOff,
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. |
protected void |
transform(double[] dir)
Transform from light space to world space. |
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[] position
protected double[] direction
protected double[] lightColor
1D
for monochrome source, 3D
for RGB
color space, or more for complex spectrum sampled spaces.
protected double[] thetaMax
protected double cosThetaMax
protected double[] fallOffStart
protected double cosFallOffStart
protected double[] dim
dim[0] + dim[1] * D + dim[2] * D * D
.
Can be null
for no dimming..
public static final java.lang.String PHOTONS
public static final java.lang.String KEY_POSITION
public static final java.lang.String DIRECTION
public static final java.lang.String TOTAL_WIDTH
public static final java.lang.String FALL_OFF_START
public static final java.lang.String KEY_DIM
public static final RegPiece reg
Constructor Detail |
---|
public StaticSpotLightSource()
Method Detail |
---|
public boolean setParams(double[] pos, double[] dir, double[] color, double width, double fallOff, double[] dimming)
pos
- Source position.color
- Source color/intensity (can be either 1D /for monochrome computing/,
3D /for RGB color system/ or greater /for more complex spectral color
sampling/).dimming
- Dimming polynom coefficients: light is dimmed by the factor of
dim[0] + dim[1] * D + dim[2] * D * D
. Can be
null
for no dimming..
true
if parameters were successfully set.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()
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.public boolean isDeltaLight()
isDeltaLight
in interface LightSource
isDeltaLight
in class DefaultLightSource
protected double getFallOff(double[] dir)
protected void transform(double[] dir)
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 |