00001 /* $Id:$ */ 00002 00003 #ifndef __PATH_TRACING_ARCHITECTURE_H 00004 #define __PATH_TRACING_ARCHITECTURE_H 00005 00006 #include <gra/arch/RayTrArch.h> 00007 #include <gra/render/Render.h> 00008 #include <gra/render/RTRender.h> 00009 #include <gra/shader/Shader.h> 00010 #include <gra/shader/RTShader.h> 00011 #include <esg/Intersector.h> 00012 #include <gra/reflection/PathTracing.h> 00013 00014 using namespace esg; 00015 00016 namespace gra { 00017 00023 class GRA_EXPORT PathTrArch : public RayTrArch { 00024 public: 00025 struct Params : public RayTrArch::Params { 00026 unsigned nRaysDiff; 00027 00028 Params(void) : nRaysDiff(1) { 00029 /* 00030 * Changes implicit values 00031 */ 00032 pixelRendering = RTRender::STRATIFIED_SAMPLING; 00033 } 00034 }; 00035 00036 public: 00042 PathTrArch (PathTrArch::Params& params); 00043 }; 00044 00045 } // namespace 00046 00047 #endif // __PATH_TRACING_ARCHITECTURE