/******************************************************************/ /* This file is part of the homework assignments for CSCI-427/527 */ /* at The College of William & Mary and authored by Pieter Peers. */ /* No part of this file, whether altered or in original form, can */ /* be distributed or used outside the context of CSCI-427/527 */ /* without consent of either the College of William & Mary or */ /* Pieter Peers. */ /******************************************************************/ #ifndef _PATHTRACING_H_ #define _PATHTRACING_H_ #include "scene.h" #include "render_base.h" #include "intersectionPoint.h" class pathtracing : public render_base { public: ////////////////// // Constructors // ////////////////// pathtracing(unsigned int samplesPerPixel, bool directOnly=false); ///////////// // Methods // ///////////// virtual image render(const scene& s) const override; private: ///////////////////// // Private Methods // ///////////////////// color radiance(const scene& s, const ray& r, const intersectionPoint& ip) const; color directRadiance(const scene& s, const intersectionPoint& ip) const; color indirectRadiance(const scene& s, const intersectionPoint& ip) const; ////////////////// // Data Members // ////////////////// unsigned int _samples; bool _directOnly; }; #endif /* _RECURSIVERAYTRACING_H_ */