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