MobileRT  1.0
A multi platform C++ CPU progressive Ray Tracer.
Components::PathTracer Class Referencefinal

#include <PathTracer.hpp>

Inheritance diagram for Components::PathTracer:
Inheritance graph
Collaboration diagram for Components::PathTracer:
Collaboration graph

Public Member Functions

 PathTracer ()=delete
 
 PathTracer (::MobileRT::Scene scene, ::std::unique_ptr<::MobileRT::Sampler > samplerRussianRoulette, ::std::int32_t samplesLight, Accelerator accelerator)
 
 PathTracer (const PathTracer &pathTracer)=delete
 
 PathTracer (PathTracer &&pathTracer) noexcept=delete
 
 ~PathTracer () final=default
 
PathTraceroperator= (const PathTracer &pathTracer)=delete
 
PathTraceroperator= (PathTracer &&pathTracer) noexcept=delete
 
void resetSampling () final
 
- Public Member Functions inherited from MobileRT::Shader
void initializeAccelerators (Scene scene)
 
 Shader ()=delete
 
 Shader (Scene scene, ::std::int32_t samplesLight, Accelerator accelerator)
 
 Shader (const Shader &shader)=delete
 
 Shader (Shader &&shader) noexcept=default
 
virtual ~Shader ()=default
 
Shaderoperator= (const Shader &shader)=delete
 
Shaderoperator= (Shader &&shader) noexcept=delete
 
bool rayTrace (::glm::vec3 *rgb, Ray &&ray)
 
bool shadowTrace (float distance, Ray &&ray)
 
const ::std::vector< Plane > & getPlanes () const
 
const ::std::vector< Sphere > & getSpheres () const
 
const ::std::vector< Triangle > & getTriangles () const
 
const ::std::vector< Material > & getMaterials () const
 
const ::std::vector<::std::unique_ptr< Light > > & getLights () const
 

Private Member Functions

bool shade (::glm::vec3 *rgb, const ::MobileRT::Intersection &intersection) final
 

Private Attributes

::std::unique_ptr<::MobileRT::SamplersamplerRussianRoulette_ {}
 

Additional Inherited Members

- Public Types inherited from MobileRT::Shader
enum  Accelerator { ACC_NAIVE = 1, ACC_REGULAR_GRID, ACC_BVH }
 
- Protected Member Functions inherited from MobileRT::Shader
virtual bool shade (::glm::vec3 *rgb, const Intersection &intersection)=0
 
::std::uint32_t getLightIndex ()
 
- Static Protected Member Functions inherited from MobileRT::Shader
::glm::vec3 getCosineSampleHemisphere (const ::glm::vec3 &normal)
 
- Protected Attributes inherited from MobileRT::Shader
const ::std::int32_t samplesLight_ {}
 
::std::vector<::std::unique_ptr< Light > > lights_ {}
 

Constructor & Destructor Documentation

◆ PathTracer() [1/4]

Components::PathTracer::PathTracer ( )
explicitdelete

◆ PathTracer() [2/4]

Components::PathTracer::PathTracer ( ::MobileRT::Scene  scene,
::std::unique_ptr<::MobileRT::Sampler samplerRussianRoulette,
::std::int32_t  samplesLight,
Accelerator  accelerator 
)
explicit

◆ PathTracer() [3/4]

Components::PathTracer::PathTracer ( const PathTracer pathTracer)
delete

◆ PathTracer() [4/4]

Components::PathTracer::PathTracer ( PathTracer &&  pathTracer)
deletenoexcept

◆ ~PathTracer()

Components::PathTracer::~PathTracer ( )
finaldefault

Member Function Documentation

◆ operator=() [1/2]

PathTracer& Components::PathTracer::operator= ( const PathTracer pathTracer)
delete

◆ operator=() [2/2]

PathTracer& Components::PathTracer::operator= ( PathTracer &&  pathTracer)
deletenoexcept

◆ resetSampling()

void PathTracer::resetSampling ( )
finalvirtual

Resets the sampling process of all the lights in the scene.

Reimplemented from MobileRT::Shader.

◆ shade()

bool PathTracer::shade ( ::glm::vec3 *  rgb,
const ::MobileRT::Intersection intersection 
)
finalprivate
Here is the call graph for this function:

Member Data Documentation

◆ samplerRussianRoulette_

::std::unique_ptr<::MobileRT::Sampler> Components::PathTracer::samplerRussianRoulette_ {}
private

The documentation for this class was generated from the following files: