org.sunflow.core.photonmap
Class CausticPhotonMap

java.lang.Object
  extended by org.sunflow.core.photonmap.CausticPhotonMap
All Implemented Interfaces:
CausticPhotonMapInterface, PhotonStore

public final class CausticPhotonMap
extends java.lang.Object
implements CausticPhotonMapInterface


Constructor Summary
CausticPhotonMap()
           
 
Method Summary
 boolean allowDiffuseBounced()
          Allow photons reflected diffusely?
 boolean allowReflectionBounced()
          Allow specularly reflected photons?
 boolean allowRefractionBounced()
          Allow refracted photons?
 void getSamples(ShadingState state)
          Retrieve caustic photons at the specified shading location and add them as diffuse light samples.
 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.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

CausticPhotonMap

public CausticPhotonMap()
Method Detail

prepare

public void prepare(Options options,
                    BoundingBox sceneBounds)
Description copied from interface: PhotonStore
Initialize this object for the specified scene size.

Specified by:
prepare in interface PhotonStore
sceneBounds - scene bounding box

store

public void store(ShadingState state,
                  Vector3 dir,
                  Color power,
                  Color diffuse)
Description copied from interface: PhotonStore
Store the specified photon.

Specified by:
store in interface PhotonStore
Parameters:
state - shading state
dir - photon direction
power - photon power
diffuse - diffuse color at the hit point

init

public void init()
Description copied from interface: PhotonStore
Initialize the map after all photons have been stored. This can be used to balance a kd-tree based photon map for example.

Specified by:
init in interface PhotonStore

getSamples

public void getSamples(ShadingState state)
Description copied from interface: CausticPhotonMapInterface
Retrieve caustic photons at the specified shading location and add them as diffuse light samples.

Specified by:
getSamples in interface CausticPhotonMapInterface

allowDiffuseBounced

public boolean allowDiffuseBounced()
Description copied from interface: PhotonStore
Allow photons reflected diffusely?

Specified by:
allowDiffuseBounced in interface PhotonStore
Returns:
true if diffuse bounces should be traced

allowReflectionBounced

public boolean allowReflectionBounced()
Description copied from interface: PhotonStore
Allow specularly reflected photons?

Specified by:
allowReflectionBounced in interface PhotonStore
Returns:
true if specular reflection bounces should be traced

allowRefractionBounced

public boolean allowRefractionBounced()
Description copied from interface: PhotonStore
Allow refracted photons?

Specified by:
allowRefractionBounced in interface PhotonStore
Returns:
true if refracted bounces should be traced

numEmit

public int numEmit()
Description copied from interface: PhotonStore
Number of photons to emit from this surface.

Specified by:
numEmit in interface PhotonStore
Returns:
number of photons