#include <photonmap.h>
Definition at line 44 of file photonmap.h.
PhotonIntegrator::PhotonIntegrator | ( | int | ncaus, | |
int | nindir, | |||
int | nLookup, | |||
int | maxspecdepth, | |||
int | maxphotondepth, | |||
float | maxdist, | |||
bool | finalGather, | |||
int | gatherSamples, | |||
float | ga | |||
) |
Definition at line 278 of file photonmap.cpp.
References bsdfSampleOffsets, causticMap, cosGatherAngle, finalGather, gatherSamples, indirectMap, lightSampleOffsets, maxDistSquared, maxPhotonDepth, maxSpecularDepth, nCausticPaths, nCausticPhotonsWanted, nIndirectPaths, nIndirectPhotonsWanted, nLookup, radianceMap, and Radians().
PhotonIntegrator::~PhotonIntegrator | ( | ) |
Definition at line 298 of file photonmap.cpp.
References bsdfSampleOffsets, causticMap, indirectMap, lightSampleOffsets, and radianceMap.
Spectrum PhotonIntegrator::Li | ( | const Scene * | scene, | |
const Renderer * | renderer, | |||
const RayDifferential & | ray, | |||
const Intersection & | isect, | |||
const Sample * | sample, | |||
RNG & | rng, | |||
MemoryArena & | arena | |||
) | const [virtual] |
Implements SurfaceIntegrator.
Definition at line 616 of file photonmap.cpp.
References AbsDot(), MemoryArena::Alloc(), Assert, BSDF_ALL, BSDF_DIFFUSE, BSDF_GLOSSY, BSDF_REFLECTION, BSDF_SPECULAR, BSDF_TRANSMISSION, bsdfGatherSampleOffsets, bsdfSampleOffsets, causticMap, CoordinateSystem(), cosGatherAngle, Ray::d, Ray::depth, Intersection::dg, BSDF::dgShading, Dot(), BSDF::f(), Faceforward(), finalGather, Floor2Int(), gatherSamples, Intersection::GetBSDF(), indirectMap, indirGatherSampleOffsets, INFINITY, Scene::Intersect(), CoefficientSpectrum< nSamples >::IsBlack(), Intersection::Le(), lightSampleOffsets, RadiancePhoton::Lo, KdTree< NodeData >::Lookup(), LPhoton(), maxDistSquared, maxSpecularDepth, nCausticPaths, PhotonProcess::nFound, nIndirectPaths, nLookup, DifferentialGeometry::nn, BSDF::NumComponents(), DifferentialGeometry::p, BSDF::Pdf(), RadiancePhotonProcess::photon, ClosePhoton::photon, PhotonProcess::photons, PowerHeuristic(), radianceMap, Intersection::rayEpsilon, BSDF::Sample_f(), SpecularReflect(), SpecularTransmit(), Ray::time, Renderer::Transmittance(), BSDFSample::uComponent, BSDFSample::uDir, UniformConePdf(), UniformSampleAllLights(), UniformSampleCone(), and Photon::wi.
void PhotonIntegrator::Preprocess | ( | const Scene * | scene, | |
const Camera * | camera, | |||
const Renderer * | renderer | |||
) | [virtual] |
Reimplemented from Integrator.
Definition at line 331 of file photonmap.cpp.
References causticMap, ComputeLightSamplingCDF(), Mutex::Create(), Mutex::Destroy(), ProgressReporter::Done(), EnqueueTasks(), finalGather, indirectMap, Scene::lights, maxDistSquared, nCausticPaths, nCausticPhotonsWanted, nIndirectPaths, nIndirectPhotonsWanted, nLookup, NumSystemCores(), radianceMap, Camera::shutterOpen, and WaitForAllTasks().
void PhotonIntegrator::RequestSamples | ( | Sampler * | sampler, | |
Sample * | sample, | |||
const Scene * | scene | |||
) | [virtual] |
Reimplemented from Integrator.
Definition at line 307 of file photonmap.cpp.
References bsdfGatherSampleOffsets, bsdfSampleOffsets, finalGather, gatherSamples, indirGatherSampleOffsets, Scene::lights, lightSampleOffsets, Light::nSamples, and Sampler::RoundSize().
friend class PhotonShootingTask [friend] |
Definition at line 58 of file photonmap.h.
Definition at line 71 of file photonmap.h.
Referenced by Li(), and RequestSamples().
Definition at line 70 of file photonmap.h.
Referenced by Li(), PhotonIntegrator(), RequestSamples(), and ~PhotonIntegrator().
KdTree<Photon>* PhotonIntegrator::causticMap [private] |
Definition at line 73 of file photonmap.h.
Referenced by Li(), PhotonIntegrator(), Preprocess(), and ~PhotonIntegrator().
float PhotonIntegrator::cosGatherAngle [private] |
Definition at line 66 of file photonmap.h.
Referenced by Li(), and PhotonIntegrator().
bool PhotonIntegrator::finalGather [private] |
Definition at line 64 of file photonmap.h.
Referenced by Li(), PhotonIntegrator(), Preprocess(), RequestSamples(), and PhotonShootingTask::Run().
int PhotonIntegrator::gatherSamples [private] |
Definition at line 65 of file photonmap.h.
Referenced by Li(), PhotonIntegrator(), and RequestSamples().
KdTree<Photon>* PhotonIntegrator::indirectMap [private] |
Definition at line 74 of file photonmap.h.
Referenced by Li(), PhotonIntegrator(), Preprocess(), and ~PhotonIntegrator().
Definition at line 71 of file photonmap.h.
Referenced by Li(), and RequestSamples().
Definition at line 69 of file photonmap.h.
Referenced by Li(), PhotonIntegrator(), RequestSamples(), and ~PhotonIntegrator().
float PhotonIntegrator::maxDistSquared [private] |
Definition at line 62 of file photonmap.h.
Referenced by Li(), PhotonIntegrator(), and Preprocess().
int PhotonIntegrator::maxPhotonDepth [private] |
Definition at line 63 of file photonmap.h.
Referenced by PhotonIntegrator(), and PhotonShootingTask::Run().
int PhotonIntegrator::maxSpecularDepth [private] |
Definition at line 63 of file photonmap.h.
Referenced by Li(), and PhotonIntegrator().
int PhotonIntegrator::nCausticPaths [private] |
Definition at line 72 of file photonmap.h.
Referenced by Li(), PhotonIntegrator(), Preprocess(), and PhotonShootingTask::Run().
uint32_t PhotonIntegrator::nCausticPhotonsWanted [private] |
Definition at line 61 of file photonmap.h.
Referenced by PhotonIntegrator(), Preprocess(), and PhotonShootingTask::Run().
int PhotonIntegrator::nIndirectPaths [private] |
Definition at line 72 of file photonmap.h.
Referenced by Li(), PhotonIntegrator(), Preprocess(), and PhotonShootingTask::Run().
uint32_t PhotonIntegrator::nIndirectPhotonsWanted [private] |
Definition at line 61 of file photonmap.h.
Referenced by PhotonIntegrator(), Preprocess(), and PhotonShootingTask::Run().
uint32_t PhotonIntegrator::nLookup [private] |
Definition at line 61 of file photonmap.h.
Referenced by Li(), PhotonIntegrator(), and Preprocess().
KdTree<RadiancePhoton>* PhotonIntegrator::radianceMap [private] |
Definition at line 75 of file photonmap.h.
Referenced by Li(), PhotonIntegrator(), Preprocess(), and ~PhotonIntegrator().