Class GridPhotonMap

    • Field Detail

      • numGather

        private int numGather
      • gatherRadius

        private float gatherRadius
      • numStoredPhotons

        private int numStoredPhotons
      • nx

        private int nx
      • ny

        private int ny
      • nz

        private int nz
      • hashSize

        private int hashSize
      • hashPrime

        private int hashPrime
      • rwl

        private java.util.concurrent.locks.ReentrantReadWriteLock rwl
      • numEmit

        private int numEmit
      • NORMAL_THRESHOLD

        private static final float NORMAL_THRESHOLD
      • PRIMES

        private static final int[] PRIMES
    • Constructor Detail

      • GridPhotonMap

        public GridPhotonMap()
    • 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
      • size

        public int size()
      • 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
      • precomputeRadiance

        public void precomputeRadiance​(boolean includeDirect,
                                       boolean includeCaustics)
      • growPhotonHash

        private void growPhotonHash()
      • 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