MobileRT  1.0
A multi platform C++ CPU progressive Ray Tracer.
PathTracer.hpp
Go to the documentation of this file.
1 #ifndef COMPONENTS_SHADERS_PATHTRACER_HPP
2 #define COMPONENTS_SHADERS_PATHTRACER_HPP
3 
4 #include "MobileRT/Sampler.hpp"
5 #include "MobileRT/Shader.hpp"
6 #include <memory>
7 #include <random>
8 
9 namespace Components {
10 
11  class PathTracer final : public ::MobileRT::Shader {
12  private:
13  ::std::unique_ptr<::MobileRT::Sampler> samplerRussianRoulette_{};
14 
15  private:
16  bool shade(
17  ::glm::vec3 *rgb,
18  const ::MobileRT::Intersection &intersection) final;
19 
20  public:
21  explicit PathTracer() = delete;
22 
23  explicit PathTracer(::MobileRT::Scene scene,
24  ::std::unique_ptr<::MobileRT::Sampler> samplerRussianRoulette,
25  ::std::int32_t samplesLight, Accelerator accelerator);
26 
27  PathTracer(const PathTracer &pathTracer) = delete;
28 
29  PathTracer(PathTracer &&pathTracer) noexcept = delete;
30 
31  ~PathTracer() final = default;
32 
33  PathTracer &operator=(const PathTracer &pathTracer) = delete;
34 
35  PathTracer &operator=(PathTracer &&pathTracer) noexcept = delete;
36 
37  void resetSampling() final;
38  };
39 }//namespace Components
40 
41 #endif //COMPONENTS_SHADERS_PATHTRACER_HPP
Definition: Orthographic.hpp:6
Accelerator
Definition: Shader.hpp:20
Definition: Shader.hpp:18
bool shade(::glm::vec3 *rgb, const ::MobileRT::Intersection &intersection) final
Definition: PathTracer.cpp:22
Definition: Scene.hpp:20
Definition: PathTracer.hpp:11
::std::unique_ptr<::MobileRT::Sampler > samplerRussianRoulette_
Definition: PathTracer.hpp:13
PathTracer & operator=(const PathTracer &pathTracer)=delete
void resetSampling() final
Definition: PathTracer.cpp:144
~PathTracer() final=default