|
||||||||||
| 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
public abstract class DefaultLightSource
Default implementation of LightSource interface.
Simple and supersampled variants point to each other.
| Field Summary | |
|---|---|
protected static java.lang.String |
CATEGORY
Object category. |
protected Intersectable |
inter
Object used for light-source visibility tests. |
static java.lang.String |
KEY_LIGHT
JGL script key: lights. |
static java.lang.String |
PARAMS
Property name: light source parameters. |
protected boolean |
plugInter
Accelerator: connected intersectable was tried? |
protected java.lang.String |
scriptName
JGL script file-name. |
protected static java.lang.String |
TEMPLATE_NAME
Object template identifier. |
| Fields inherited from class cz.cuni.jagrlib.Piece |
|---|
channels, info, pl, plugs, reg, 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 | |
|---|---|
DefaultLightSource()
|
|
| Method Summary | |
|---|---|
protected boolean |
assertInter()
Asserts the inter accelerator. |
boolean |
getDirection(MicroFacet mf,
double[] dir)
Returns light direction between the source and the given MicroFacet. |
boolean |
getDirection(MicroFacet mf,
int order,
int total,
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 |
getIntensity(MicroFacet mf,
int order,
int total,
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. |
boolean |
lights(MicroFacet mf,
int order,
int total)
Lighting test from the source to the given MicroFacet. |
double |
pdf(double[] point,
double[] normal,
double[] dir)
Return probability density function. |
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. |
Intersectable |
setIntersectable(Intersectable intersect)
Sets intersectable object (for light-source of visibility: lights(MicroFacet), ..). |
| 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, setTemplate, setTemplateDynamic, stop |
| Methods inherited from class cz.cuni.jagrlib.DefaultProperty |
|---|
booleanProperty, booleanProperty, colorDoubleProperty, colorProperty, commit, doubleProperty, doubleProperty, doubleProperty, enumProperty, floatProperty, floatProperty, floatProperty, get, intProperty, intProperty, intProperty, longProperty, longProperty, longProperty, set, 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, get, set |
| Field Detail |
|---|
public static final java.lang.String KEY_LIGHT
public static final java.lang.String PARAMS
protected java.lang.String scriptName
protected Intersectable inter
protected boolean plugInter
protected static final java.lang.String TEMPLATE_NAME
protected static final java.lang.String CATEGORY
| Constructor Detail |
|---|
public DefaultLightSource()
| Method Detail |
|---|
protected boolean assertInter()
inter accelerator.
true if failed.public Intersectable setIntersectable(Intersectable intersect)
lights(MicroFacet), ..).
setIntersectable in interface LightSourcepublic boolean lights(MicroFacet mf)
MicroFacet.
lights in interface LightSourcemf - The checked MicroFacet (point on surface of some solid).
getIntensity(cz.cuni.jagrlib.MicroFacet, double[]),
getDirection(cz.cuni.jagrlib.MicroFacet, double[])
public boolean lights(MicroFacet mf,
int order,
int total)
MicroFacet.
Super-sampling variant.
lights in interface LightSourcemf - The checked MicroFacet (point on surface of some solid).order - Order of this sample inside the actual pixel.total - Total number of samples in the actual pixel.
getIntensity(cz.cuni.jagrlib.MicroFacet, double[]),
getDirection(cz.cuni.jagrlib.MicroFacet, double[])
public boolean getIntensity(MicroFacet mf,
double[] color)
MicroFacet.
getIntensity in interface LightSourcemf - 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/).
lights(cz.cuni.jagrlib.MicroFacet),
getDirection(cz.cuni.jagrlib.MicroFacet, double[])
public boolean getIntensity(MicroFacet mf,
int order,
int total,
double[] color)
MicroFacet.
Super-sampling variant.
getIntensity in interface LightSourcemf - The MicroFacet (point on surface of some solid).order - Order of this sample inside the actual pixel.total - Total number of samples in the actual pixel.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/).
lights(cz.cuni.jagrlib.MicroFacet),
getDirection(cz.cuni.jagrlib.MicroFacet, double[])
public boolean getDirection(MicroFacet mf,
double[] dir)
MicroFacet.
getDirection in interface LightSourcemf - 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.
lights(cz.cuni.jagrlib.MicroFacet),
getIntensity(cz.cuni.jagrlib.MicroFacet, double[])
public boolean getDirection(MicroFacet mf,
int order,
int total,
double[] dir)
MicroFacet.
Super-sampling variant.
getDirection in interface LightSourcemf - The MicroFacet (point on surface of some solid).order - Order of this sample inside the actual pixel.total - Total number of samples in the actual pixel.dir - Pre-allocated array to hold the result - normalised direction vector
from the MicroFacet to the light source.
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 LightSourcemf - The MicroFacet (point on surface of some solid).ksi1 - Uniform random number.ksi1 - 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.
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 LightSourceu1 - 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 LightSourcepoint - Point on the surface.normal - Normal at this point.dir - Direction from the point.public boolean isDeltaLight()
isDeltaLight in interface LightSource
|
||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||