Interface PhotonStore

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

public interface PhotonStore
Describes an object which can store photons.
  • Method Details

    • 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 state
      dir - photon direction
      power - photon power
      diffuse - 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