#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().
1.6.3