Package org.sunflow.core.photonmap
Class GlobalPhotonMap
java.lang.Object
org.sunflow.core.photonmap.GlobalPhotonMap
- All Implemented Interfaces:
GlobalPhotonMapInterface
,PhotonStore
-
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionboolean
Allow photons reflected diffusely?boolean
Allow specularly reflected photons?boolean
Allow refracted photons?getRadiance
(Point3 p, Vector3 n) Lookup the global diffuse radiance at the specified surface point.void
init()
Initialize the map after all photons have been stored.int
numEmit()
Number of photons to emit from this surface.void
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
-
GlobalPhotonMap
public GlobalPhotonMap()
-
-
Method Details
-
prepare
Description copied from interface:PhotonStore
Initialize this object for the specified scene size.- Specified by:
prepare
in interfacePhotonStore
- Parameters:
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
-
precomputeRadiance
public void precomputeRadiance() -
getRadiance
Description copied from interface:GlobalPhotonMapInterface
Lookup the global diffuse radiance at the specified surface point.- Specified by:
getRadiance
in interfaceGlobalPhotonMapInterface
- Parameters:
p
- surface positionn
- surface normal- Returns:
- an approximation of global diffuse radiance at this point
-
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
-