#include "pbrt.h"
#include "primitive.h"
#include "spectrum.h"
#include "light.h"
#include "reflection.h"
#include "sampler.h"
#include "material.h"
#include "probes.h"
#include "renderer.h"
Go to the source code of this file.
Classes | |
class | Integrator |
class | SurfaceIntegrator |
Functions | |
Spectrum | UniformSampleAllLights (const Scene *scene, const Renderer *renderer, MemoryArena &arena, const Point &p, const Normal &n, const Vector &wo, float rayEpsilon, float time, BSDF *bsdf, const Sample *sample, RNG &rng, const LightSampleOffsets *lightSampleOffsets, const BSDFSampleOffsets *bsdfSampleOffsets) |
Spectrum | UniformSampleOneLight (const Scene *scene, const Renderer *renderer, MemoryArena &arena, const Point &p, const Normal &n, const Vector &wo, float rayEpsilon, float time, BSDF *bsdf, const Sample *sample, RNG &rng, int lightNumOffset=-1, const LightSampleOffsets *lightSampleOffset=NULL, const BSDFSampleOffsets *bsdfSampleOffset=NULL) |
Spectrum | EstimateDirect (const Scene *scene, const Renderer *renderer, MemoryArena &arena, const Light *light, const Point &p, const Normal &n, const Vector &wo, float rayEpsilon, float time, const BSDF *bsdf, RNG &rng, const LightSample &lightSample, const BSDFSample &bsdfSample, BxDFType flags) |
Spectrum | SpecularReflect (const RayDifferential &ray, BSDF *bsdf, RNG &rng, const Intersection &isect, const Renderer *renderer, const Scene *scene, const Sample *sample, MemoryArena &arena) |
Spectrum | SpecularTransmit (const RayDifferential &ray, BSDF *bsdf, RNG &rng, const Intersection &isect, const Renderer *renderer, const Scene *scene, const Sample *sample, MemoryArena &arena) |
Distribution1D * | ComputeLightSamplingCDF (const Scene *scene) |
Distribution1D* ComputeLightSamplingCDF | ( | const Scene * | scene | ) |
Definition at line 253 of file integrator.cpp.
References Assert, and Scene::lights.
Referenced by PhotonIntegrator::Preprocess(), IGIIntegrator::Preprocess(), and MetropolisRenderer::Render().
Spectrum EstimateDirect | ( | const Scene * | scene, | |
const Renderer * | renderer, | |||
MemoryArena & | arena, | |||
const Light * | light, | |||
const Point & | p, | |||
const Normal & | n, | |||
const Vector & | wo, | |||
float | rayEpsilon, | |||
float | time, | |||
const BSDF * | bsdf, | |||
RNG & | rng, | |||
const LightSample & | lightSample, | |||
const BSDFSample & | bsdfSample, | |||
BxDFType | flags | |||
) |
Definition at line 109 of file integrator.cpp.
References AbsDot(), BSDF_SPECULAR, BSDF::f(), Primitive::GetAreaLight(), INFINITY, Scene::Intersect(), CoefficientSpectrum< nSamples >::IsBlack(), Light::IsDeltaLight(), Light::Le(), Intersection::Le(), Light::Pdf(), BSDF::Pdf(), PowerHeuristic(), Intersection::primitive, BSDF::Sample_f(), Light::Sample_L(), Renderer::Transmittance(), VisibilityTester::Transmittance(), and VisibilityTester::Unoccluded().
Referenced by MetropolisRenderer::Lbidir(), MetropolisRenderer::Lpath(), UniformSampleAllLights(), and UniformSampleOneLight().
Spectrum SpecularReflect | ( | const RayDifferential & | ray, | |
BSDF * | bsdf, | |||
RNG & | rng, | |||
const Intersection & | isect, | |||
const Renderer * | renderer, | |||
const Scene * | scene, | |||
const Sample * | sample, | |||
MemoryArena & | arena | |||
) |
Definition at line 169 of file integrator.cpp.
References AbsDot(), BSDF_REFLECTION, BSDF_SPECULAR, Ray::d, Intersection::dg, BSDF::dgShading, DifferentialGeometry::dndu, DifferentialGeometry::dndv, Dot(), DifferentialGeometry::dpdx, DifferentialGeometry::dpdy, DifferentialGeometry::dudx, DifferentialGeometry::dudy, DifferentialGeometry::dvdx, DifferentialGeometry::dvdy, RayDifferential::hasDifferentials, CoefficientSpectrum< nSamples >::IsBlack(), Renderer::Li(), DifferentialGeometry::nn, DifferentialGeometry::p, Intersection::rayEpsilon, RayDifferential::rxDirection, RayDifferential::rxOrigin, RayDifferential::ryDirection, RayDifferential::ryOrigin, and BSDF::Sample_f().
Referenced by WhittedIntegrator::Li(), PhotonIntegrator::Li(), IrradianceCacheIntegrator::Li(), IGIIntegrator::Li(), DirectLightingIntegrator::Li(), and DipoleSubsurfaceIntegrator::Li().
Spectrum SpecularTransmit | ( | const RayDifferential & | ray, | |
BSDF * | bsdf, | |||
RNG & | rng, | |||
const Intersection & | isect, | |||
const Renderer * | renderer, | |||
const Scene * | scene, | |||
const Sample * | sample, | |||
MemoryArena & | arena | |||
) |
Definition at line 208 of file integrator.cpp.
References AbsDot(), BSDF_SPECULAR, BSDF_TRANSMISSION, Ray::d, Intersection::dg, BSDF::dgShading, DifferentialGeometry::dndu, DifferentialGeometry::dndv, Dot(), DifferentialGeometry::dpdx, DifferentialGeometry::dpdy, DifferentialGeometry::dudx, DifferentialGeometry::dudy, DifferentialGeometry::dvdx, DifferentialGeometry::dvdy, BSDF::eta, RayDifferential::hasDifferentials, CoefficientSpectrum< nSamples >::IsBlack(), Renderer::Li(), DifferentialGeometry::nn, DifferentialGeometry::p, Intersection::rayEpsilon, RayDifferential::rxDirection, RayDifferential::rxOrigin, RayDifferential::ryDirection, RayDifferential::ryOrigin, and BSDF::Sample_f().
Referenced by WhittedIntegrator::Li(), PhotonIntegrator::Li(), IrradianceCacheIntegrator::Li(), IGIIntegrator::Li(), DirectLightingIntegrator::Li(), and DipoleSubsurfaceIntegrator::Li().
Spectrum UniformSampleAllLights | ( | const Scene * | scene, | |
const Renderer * | renderer, | |||
MemoryArena & | arena, | |||
const Point & | p, | |||
const Normal & | n, | |||
const Vector & | wo, | |||
float | rayEpsilon, | |||
float | time, | |||
BSDF * | bsdf, | |||
const Sample * | sample, | |||
RNG & | rng, | |||
const LightSampleOffsets * | lightSampleOffsets, | |||
const BSDFSampleOffsets * | bsdfSampleOffsets | |||
) |
Definition at line 39 of file integrator.cpp.
References BSDF_ALL, BSDF_SPECULAR, EstimateDirect(), Scene::lights, and LightSampleOffsets::nSamples.
Referenced by UseRadianceProbes::Li(), PhotonIntegrator::Li(), IrradianceCacheIntegrator::Li(), IGIIntegrator::Li(), DirectLightingIntegrator::Li(), and DipoleSubsurfaceIntegrator::Li().
Spectrum UniformSampleOneLight | ( | const Scene * | scene, | |
const Renderer * | renderer, | |||
MemoryArena & | arena, | |||
const Point & | p, | |||
const Normal & | n, | |||
const Vector & | wo, | |||
float | rayEpsilon, | |||
float | time, | |||
BSDF * | bsdf, | |||
const Sample * | sample, | |||
RNG & | rng, | |||
int | lightNumOffset = -1 , |
|||
const LightSampleOffsets * | lightSampleOffset = NULL , |
|||
const BSDFSampleOffsets * | bsdfSampleOffset = NULL | |||
) |
Definition at line 74 of file integrator.cpp.
References BSDF_ALL, BSDF_SPECULAR, EstimateDirect(), Floor2Int(), Scene::lights, Sample::oneD, and RNG::RandomFloat().
Referenced by PathIntegrator::Li(), DirectLightingIntegrator::Li(), and IrradianceCacheIntegrator::pathL().