The spica renderer
pssmlt.h
1 #ifdef _MSC_VER
2 #pragma once
3 #endif
4 
5 #ifndef _SPICA_PSSMLT_H_
6 #define _SPICA_PSSMLT_H_
7 
8 #include "core/common.h"
9 #include "core/cobject.h"
10 #include "core/integrator.h"
11 
12 namespace spica {
13 
18 class PSSMLTIntegrator : public Integrator {
19 public:
20  // Public methods
22  explicit PSSMLTIntegrator(RenderParams &params);
23  virtual ~PSSMLTIntegrator();
24  virtual void render(const std::shared_ptr<const Camera>& camera, const Scene& scene, RenderParams& params) override;
25 
26 private:
27  class PathSample;
28  PathSample generateSample(const std::shared_ptr<const Camera> &camera,
29  const Scene& scene,
30  RenderParams& params,
31  Sampler& sampler,
32  MemoryArena& arena) const;
33 
34  Spectrum Li(const Scene& scene,
35  RenderParams& params,
36  const Ray& r,
37  Sampler& sampler,
38  MemoryArena& arena,
39  int depth = 0) const;
40 };
41 
42 SPICA_EXPORT_PLUGIN(PSSMLTIntegrator, "Primary sampling space metroplis light transport");
43 
44 } // namespace spica
45 
46 #endif // _SPICA_PSSMLT_H_
Random sampler class.
Definition: sampler.h:24
RGB spectrum.
Definition: spectrum.h:18
The integrator interface.
Definition: integrator.h:29
Ray class.
Definition: ray.h:24
Definition: renderparams.h:27
Primary Sample Space Metropolis Light Transport.
Definition: pssmlt.h:18
Scene provides the interface for scene graph.
Definition: scene.h:23
Path sample.
Definition: pssmlt.cc:72