|
||||||||||
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.DirectionalLightSource
public class DirectionalLightSource
Directional light source shining uniformly in one direction.
Field Summary | |
---|---|
static java.lang.String |
COLOR
JGL script key: color. |
static java.lang.String |
DIR
JGL script key: position of up right vertex. |
protected double[] |
direction
Direction of light. |
protected double[] |
lightColor
Color of the source: 1D for monochrome source, 3D for RGB
color space, or more for complex spectrum sampled spaces. |
protected int[] |
photons
Number of shooted photons (for methods based on photon tracing). |
static java.lang.String |
PHOTONS
JGL script key: position of up right vertex. |
static RegPiece |
reg
Static registration instance for this class. |
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.Property |
---|
LOGGING, STATISTICS, TEXT_DESCRIPTION |
Constructor Summary | |
---|---|
DirectionalLightSource()
|
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 . |
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(int photons,
double[] dir,
double[] color)
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 int[] photons
protected double[] direction
protected double[] lightColor
1D
for monochrome source, 3D
for RGB
color space, or more for complex spectrum sampled spaces.
public static final java.lang.String PHOTONS
public static final java.lang.String DIR
public static final java.lang.String COLOR
public static final RegPiece reg
Constructor Detail |
---|
public DirectionalLightSource()
Method Detail |
---|
public boolean setParams(int photons, double[] dir, double[] color)
photons
- Number of photons to shoot.dir
- Direction of the light.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
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 |