Package org.sunflow.core.photonmap
Class CausticPhotonMap
java.lang.Object
org.sunflow.core.photonmap.CausticPhotonMap
- All Implemented Interfaces:
CausticPhotonMapInterface
,PhotonStore
-
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionboolean
Allow photons reflected diffusely?boolean
Allow specularly reflected photons?boolean
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.
-
Constructor Details
-
CausticPhotonMap
public CausticPhotonMap()
-
-
Method Details
-
prepare
Description copied from interface:PhotonStore
Initialize this object for the specified scene size.- Specified by:
prepare
in interfacePhotonStore
sceneBounds
- scene bounding box
-
store
Description copied from interface:PhotonStore
Store the specified photon.- Specified by:
store
in interfacePhotonStore
- Parameters:
state
- shading statedir
- photon directionpower
- photon powerdiffuse
- 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 interfacePhotonStore
-
getSamples
Description copied from interface:CausticPhotonMapInterface
Retrieve caustic photons at the specified shading location and add them as diffuse light samples.- Specified by:
getSamples
in interfaceCausticPhotonMapInterface
-
allowDiffuseBounced
public boolean allowDiffuseBounced()Description copied from interface:PhotonStore
Allow photons reflected diffusely?- Specified by:
allowDiffuseBounced
in interfacePhotonStore
- 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 interfacePhotonStore
- 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 interfacePhotonStore
- 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 interfacePhotonStore
- Returns:
- number of photons
-