The spica renderer
bdpt.h
1 #ifdef _MSC_VER
2 #pragma once
3 #endif
4 
5 #ifndef _SPICA_BDPT_INTEGRATOR_H_
6 #define _SPICA_BDPT_INTEGRATOR_H_
7 
8 #include "core/common.h"
9 #include "core/renderparams.h"
10 #include "core/integrator.h"
11 
12 namespace spica {
13 
17 class SPICA_EXPORTS BDPTIntegrator : public Integrator {
18 public:
19  // Public methods
20  explicit BDPTIntegrator(const std::shared_ptr<Sampler>& sampler);
21  explicit BDPTIntegrator(RenderParams &params);
22  ~BDPTIntegrator();
23 
24  void render(const std::shared_ptr<const Camera>& camera,
25  const Scene& scene,
26  RenderParams& params) override;
27 
28 private:
29  std::shared_ptr<Sampler> sampler_ = nullptr;
30 };
31 
32 SPICA_EXPORT_PLUGIN(BDPTIntegrator, "Bidirectional path tracing integrator");
33 
34 } // namespace spica
35 
36 #endif // _SPICA_BDPT_INTEGRATOR_H_
Bidirectional path tracing.
Definition: bdpt.h:17
The integrator interface.
Definition: integrator.h:29
Definition: renderparams.h:27
Scene provides the interface for scene graph.
Definition: scene.h:23