Photon Engine 2.0.0-beta
A physically based renderer.
|
Default photon map type. Should be adequate for most cases. More...
#include <TPhotonMap.h>
Classes | |
struct | PhotonCenterCalculator |
Public Types | |
using | MapType = math::TIndexedPointKdtree<Photon, uint32, PhotonCenterCalculator, PhotonStorage> |
using | BuildCacheType = MapType::BuildCache |
Public Member Functions | |
bool | canContribute (const std::size_t viewPathLength, const std::size_t minFullPathLength, const std::size_t maxFullPathLength) const |
void | find (const math::Vector3R &position, const real kernelRadius, std::vector< Photon > &photons) const |
Find all photons in a radius. | |
void | find (const math::Vector3R &position, const real kernelRadius, const std::size_t viewPathLength, const std::size_t minFullPathLength, const std::size_t maxFullPathLength, std::vector< Photon > &photons) const |
Find all photons in a radius that can contribute given the path requirements. | |
TPhotonMapInfo< Photon > | getInfo () const |
Public Attributes | |
MapType | map = MapType(2, PhotonCenterCalculator{}) |
std::size_t | numPaths = 0 |
uint32 | minPathLength = 1 |
uint32 | maxPathLength = PMCommonParams::DEFAULT_MAX_PATH_LENGTH |
Default photon map type. Should be adequate for most cases.
using ph::TPhotonMap< Photon, PhotonStorage >::BuildCacheType = MapType::BuildCache |
using ph::TPhotonMap< Photon, PhotonStorage >::MapType = math::TIndexedPointKdtree<Photon, uint32, PhotonCenterCalculator, PhotonStorage> |
|
inline |
viewPathLength | The view path length used for forming a full path. |
minFullPathLength | The minimum full path length to form. |
maxFullPathLength | The maximum full path length to form (inclusive). |
|
inline |
Find all photons in a radius that can contribute given the path requirements.
canContribute()
.
|
inline |
Find all photons in a radius.
|
inline |
MapType ph::TPhotonMap< Photon, PhotonStorage >::map = MapType(2, PhotonCenterCalculator{}) |
uint32 ph::TPhotonMap< Photon, PhotonStorage >::maxPathLength = PMCommonParams::DEFAULT_MAX_PATH_LENGTH |
Maximum length of photon paths in this photon map. The default value is practically infinite number of bounces.
uint32 ph::TPhotonMap< Photon, PhotonStorage >::minPathLength = 1 |
Minimum length of photon paths in this photon map. If a photon lands on a surface for the first time, then its path length is 1 (no need to bounce).
std::size_t ph::TPhotonMap< Photon, PhotonStorage >::numPaths = 0 |
Number of photon paths in this photon map.