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.
|
update
int 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 shadedLightSample
void 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.