#include "stdafx.h"#include "renderers/metropolis.h"#include "renderers/samplerrenderer.h"#include "scene.h"#include "imageio.h"#include "spectrum.h"#include "camera.h"#include "film.h"#include "rng.h"#include "progressreporter.h"#include "paramset.h"#include "parallel.h"#include "probes.h"#include "intersection.h"#include "montecarlo.h"#include "samplers/lowdiscrepancy.h"#include "integrators/directlighting.h"Go to the source code of this file.
Classes | |
| struct | PathSample |
| struct | LightingSample |
| struct | MLTSample |
| struct | PathVertex |
| class | MLTTask |
Functions | |
| static void | LargeStep (RNG &rng, MLTSample *sample, int maxDepth, float x, float y, float t0, float t1, bool bidirectional) |
| static void | mutate (RNG &rng, float *v, float min=0.f, float max=1.f) |
| static void | SmallStep (RNG &rng, MLTSample *sample, int maxDepth, int x0, int x1, int y0, int y1, float t0, float t1, bool bidirectional) |
| static uint32_t | GeneratePath (const RayDifferential &r, const Spectrum &alpha, const Scene *scene, MemoryArena &arena, const vector< PathSample > &samples, PathVertex *path, RayDifferential *escapedRay, Spectrum *escapedAlpha) |
| float | I (const Spectrum &L) |
| MetropolisRenderer * | CreateMetropolisRenderer (const ParamSet ¶ms, Camera *camera) |
| MetropolisRenderer* CreateMetropolisRenderer | ( | const ParamSet & | params, | |
| Camera * | camera | |||
| ) |
Definition at line 504 of file metropolis.cpp.
References ParamSet::FindOneBool(), ParamSet::FindOneFloat(), ParamSet::FindOneInt(), PbrtOptions, and Options::quickRender.
Referenced by RenderOptions::MakeRenderer().
| static uint32_t GeneratePath | ( | const RayDifferential & | r, | |
| const Spectrum & | alpha, | |||
| const Scene * | scene, | |||
| MemoryArena & | arena, | |||
| const vector< PathSample > & | samples, | |||
| PathVertex * | path, | |||
| RayDifferential * | escapedRay, | |||
| Spectrum * | escapedAlpha | |||
| ) | [static] |
Definition at line 220 of file metropolis.cpp.
References AbsDot(), PathVertex::alpha, PathVertex::bsdf, BSDF_ALL, BSDF_REFLECTION, BSDF_SPECULAR, BSDF_TRANSMISSION, Ray::d, BSDF::dgShading, Intersection::GetBSDF(), Scene::Intersect(), CoefficientSpectrum< nSamples >::IsBlack(), PathVertex::isect, DifferentialGeometry::nn, PathVertex::nSpecularComponents, BSDF::NumComponents(), DifferentialGeometry::p, Intersection::rayEpsilon, BSDF::Sample_f(), PathVertex::specularBounce, PathVertex::wNext, PathVertex::wPrev, and RGBSpectrum::y().
Referenced by MetropolisRenderer::PathL().
| float I | ( | const Spectrum & | L | ) | [inline] |
Definition at line 633 of file metropolis.cpp.
References RGBSpectrum::y().
Referenced by CreateGoniometricLight(), CreatePointLight(), CreateProjectionLight(), CreateSpotLight(), MetropolisRenderer::Render(), and MLTTask::Run().
| static void LargeStep | ( | RNG & | rng, | |
| MLTSample * | sample, | |||
| int | maxDepth, | |||
| float | x, | |||
| float | y, | |||
| float | t0, | |||
| float | t1, | |||
| bool | bidirectional | |||
| ) | [static] |
Definition at line 71 of file metropolis.cpp.
References LightingSample::bsdfSample, PathSample::bsdfSample, MLTSample::cameraPathSamples, MLTSample::cameraSample, CameraSample::imageX, CameraSample::imageY, CameraSample::lensU, CameraSample::lensV, Lerp(), MLTSample::lightingSamples, LightingSample::lightNum, MLTSample::lightNumSample, MLTSample::lightPathSamples, MLTSample::lightRaySamples, LightingSample::lightSample, RNG::RandomFloat(), PathSample::rrSample, CameraSample::time, LightSample::uComponent, BSDFSample::uComponent, BSDFSample::uDir, and LightSample::uPos.
Referenced by MetropolisRenderer::Render(), and MLTTask::Run().
| static void mutate | ( | RNG & | rng, | |
| float * | v, | |||
| float | min = 0.f, |
|||
| float | max = 1.f | |||
| ) | [inline, static] |
Definition at line 114 of file metropolis.cpp.
References Assert, and RNG::RandomFloat().
Referenced by SmallStep().
| static void SmallStep | ( | RNG & | rng, | |
| MLTSample * | sample, | |||
| int | maxDepth, | |||
| int | x0, | |||
| int | x1, | |||
| int | y0, | |||
| int | y1, | |||
| float | t0, | |||
| float | t1, | |||
| bool | bidirectional | |||
| ) | [static] |
Definition at line 133 of file metropolis.cpp.
References LightingSample::bsdfSample, PathSample::bsdfSample, MLTSample::cameraPathSamples, MLTSample::cameraSample, CameraSample::imageX, CameraSample::imageY, CameraSample::lensU, CameraSample::lensV, MLTSample::lightingSamples, LightingSample::lightNum, MLTSample::lightNumSample, MLTSample::lightPathSamples, MLTSample::lightRaySamples, LightingSample::lightSample, mutate(), PathSample::rrSample, CameraSample::time, LightSample::uComponent, BSDFSample::uComponent, BSDFSample::uDir, and LightSample::uPos.
Referenced by MLTTask::Run().
1.6.3