public interface LightSource extends RenderObject
| Modifier and Type | Method and Description |
|---|---|
Instance |
createInstance()
Create an instance which represents the geometry of this light source.
|
int |
getNumSamples()
Get the maximum number of samples that can be taken from this light
source.
|
void |
getPhoton(double randX1,
double randY1,
double randX2,
double randY2,
Point3 p,
Vector3 dir,
Color power)
Gets a photon to emit from this light source by setting each of the
arguments.
|
float |
getPower()
Get the total power emitted by this light source.
|
void |
getSamples(ShadingState state)
Samples the light source to compute direct illumination.
|
updateint getNumSamples()
void getSamples(ShadingState state)
LightSample class and added to the
current ShadingState. This method is responsible for the
shooting of shadow rays which allows for non-physical lights that don't
cast shadows. It is recommended that only a single shadow ray be shot if
ShadingState.getDiffuseDepth() is greater than 0. This avoids an
exponential number of shadow rays from being traced.state - current state, including point to be shadedLightSamplevoid getPhoton(double randX1,
double randY1,
double randX2,
double randY2,
Point3 p,
Vector3 dir,
Color power)
randX1 - sampling parameterrandY1 - sampling parameterrandX2 - sampling parameterrandY2 - sampling parameterp - position to shoot the photon fromdir - direction to shoot the photon inpower - power of the photonfloat getPower()
Instance createInstance()
null to
indicate that no geometry needs to be created.