The spica renderer
path.h
1 #ifdef _MSC_VER
2 #pragma once
3 #endif
4 
5 #ifndef _SPICA_PATH_INTEGRATOR_H_
6 #define _SPICA_PATH_INTEGRATOR_H_
7 
8 #include <string>
9 
10 #include "core/common.h"
11 #include "core/core.hpp"
12 
13 #include "core/integrator.h"
14 
15 namespace spica {
16 
21 class SPICA_EXPORTS PathIntegrator : public SamplerIntegrator {
22 public:
23  // Public methods
24  explicit PathIntegrator(const std::shared_ptr<Sampler>& sampler);
25  explicit PathIntegrator(RenderParams &params);
26  ~PathIntegrator();
27 
28 protected:
29  // Protected methods
30  virtual Spectrum Li(const Scene& scene,
31  RenderParams& params,
32  const Ray& ray,
33  Sampler& sampler,
34  MemoryArena& arena,
35  int depth = 0) const override;
36 
37  // Private
38  std::shared_ptr<Sampler> sampler_;
39 };
40 
41 SPICA_EXPORT_PLUGIN(PathIntegrator, "Path tracing integrator");
42 
43 } // namespace spica
44 
45 #endif // _SPICA_PATH_INTEGRATOR_H_
Random sampler class.
Definition: sampler.h:24
RGB spectrum.
Definition: spectrum.h:18
Ray class.
Definition: ray.h:24
Definition: renderparams.h:27
The sampler integrator interface.
Definition: integrator.h:45
Unidirectional path tracing.
Definition: path.h:21
Scene provides the interface for scene graph.
Definition: scene.h:23