Package org.sunflow.core
Interface PhotonStore
-
- All Known Subinterfaces:
CausticPhotonMapInterface
,GlobalPhotonMapInterface
- All Known Implementing Classes:
CausticPhotonMap
,GlobalPhotonMap
,GridPhotonMap
,InstantGI.PointLightStore
public interface PhotonStore
Describes an object which can store photons.
-
-
Method Summary
All Methods Instance Methods Abstract Methods Modifier and Type Method Description boolean
allowDiffuseBounced()
Allow photons reflected diffusely?boolean
allowReflectionBounced()
Allow specularly reflected photons?boolean
allowRefractionBounced()
Allow refracted photons?void
init()
Initialize the map after all photons have been stored.int
numEmit()
Number of photons to emit from this surface.void
prepare(Options options, BoundingBox sceneBounds)
Initialize this object for the specified scene size.void
store(ShadingState state, Vector3 dir, Color power, Color diffuse)
Store the specified photon.
-
-
-
Method Detail
-
numEmit
int numEmit()
Number of photons to emit from this surface.- Returns:
- number of photons
-
prepare
void prepare(Options options, BoundingBox sceneBounds)
Initialize this object for the specified scene size.- Parameters:
sceneBounds
- scene bounding box
-
store
void store(ShadingState state, Vector3 dir, Color power, Color diffuse)
Store the specified photon.- Parameters:
state
- shading statedir
- photon directionpower
- photon powerdiffuse
- diffuse color at the hit point
-
init
void init()
Initialize the map after all photons have been stored. This can be used to balance a kd-tree based photon map for example.
-
allowDiffuseBounced
boolean allowDiffuseBounced()
Allow photons reflected diffusely?- Returns:
true
if diffuse bounces should be traced
-
allowReflectionBounced
boolean allowReflectionBounced()
Allow specularly reflected photons?- Returns:
true
if specular reflection bounces should be traced
-
allowRefractionBounced
boolean allowRefractionBounced()
Allow refracted photons?- Returns:
true
if refracted bounces should be traced
-
-