org.sunflow.core

Interface PhotonStore

Known Subinterfaces:
CausticPhotonMapInterface, GlobalPhotonMapInterface
Known Implementing Classes:
CausticPhotonMap, GlobalPhotonMap, GridPhotonMap

public interface PhotonStore

Describes an object which can store photons.

Method Summary

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(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 Details

allowDiffuseBounced

public boolean allowDiffuseBounced()
Allow photons reflected diffusely?
Returns:
true if diffuse bounces should be traced

allowReflectionBounced

public boolean allowReflectionBounced()
Allow specularly reflected photons?
Returns:
true if specular reflection bounces should be traced

allowRefractionBounced

public boolean allowRefractionBounced()
Allow refracted photons?
Returns:
true if refracted bounces should be traced

init

public 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.

numEmit

public int numEmit()
Number of photons to emit from this surface.
Returns:
number of photons

prepare

public void prepare(BoundingBox sceneBounds)
Initialize this object for the specified scene size.
Parameters:
sceneBounds - scene bounding box

store

public void store(ShadingState state,
                  Vector3 dir,
                  Color power,
                  Color diffuse)
Store the specified photon.
Parameters:
state - shading state
dir - photon direction
power - photon power
diffuse - diffuse color at the hit point