RayTracer.h
Go to the documentation of this file.00001 /**<!--------------------------------------------------------------------> 00002 @class RayTracer 00003 @author Travis Fischer (fisch0920@gmail.com) 00004 @author Matthew Jacobs (jacobs.mh@gmail.com) 00005 @date Fall 2008 00006 00007 @brief 00008 Abstract ray tracing engine, with the following concrete 00009 implementations: WhittedRayTracer, StochasticRayTracer 00010 <!-------------------------------------------------------------------->**/ 00011 00012 #ifndef RAY_TRACER_H_ 00013 #define RAY_TRACER_H_ 00014 00015 #include <renderers/PointSampleRenderer.h> 00016 00017 struct Ray; 00018 00019 class RayTracer : public PointSampleRenderer { 00020 public: 00021 ///@name Constructors 00022 //@{----------------------------------------------------------------- 00023 00024 inline RayTracer(RenderOutput *output = NULL, 00025 Camera *camera = NULL, 00026 Scene *scene = NULL) 00027 : PointSampleRenderer(output, camera, scene) 00028 { } 00029 00030 virtual ~RayTracer() 00031 { } 00032 00033 00034 //@}----------------------------------------------------------------- 00035 ///@name Main usage interface 00036 //@{----------------------------------------------------------------- 00037 00038 /** 00039 * @brief 00040 * Renders a single point sample (incident radiance evaluation) at 00041 * the point specified on the film plane 00042 */ 00043 virtual void sample(PointSample &outSample); 00044 00045 00046 //@}----------------------------------------------------------------- 00047 00048 protected: 00049 /** 00050 * @brief 00051 * Evaluates the radiance propogating in the opposite direction 00052 * of the given ray using some type of illumination model 00053 * 00054 * @returns the spectral radiance emitted from the first surface 00055 * intersected along the given ray in the opposite direction from 00056 * the ray in the out param 'outRadiance' 00057 */ 00058 virtual void _evaluate(const Ray &ray, SpectralSampleSet &outRadiance, 00059 PropertyMap &data) = 0; 00060 }; 00061 00062 #endif // RAY_TRACER_H_ 00063
Generated on 28 Feb 2009 for Milton by
1.5.6