00001
00002
00003 #ifndef __RAY_TRACING_SHADER_H
00004 #define __RAY_TRACING_SHADER_H
00005
00006 #include <gra/shader/GlobalShader.h>
00007 #include <gra/reflection/LocalReflection.h>
00008 #include <gra/reflection/RayTracing.h>
00009
00010 using namespace esg;
00011
00012 namespace gra {
00013
00018 class GRA_EXPORT RTShader : public GlobalShader {
00019 public:
00027 RTShader(RayTracing * m,
00028 DiffuseBRDF * db,
00029 SpecularBRDF * cb)
00030 : GlobalShader(m, db, cb) {}
00031
00036 virtual void distributeEnergy (void) {}
00037
00054 virtual Color3f* illuminatePoint (const Vector3& location,
00055 const Vector3& normal,
00056 const Vector3& eyeDir,
00057 float eyeDist,
00058 double* pNV,
00059 const Matrix4* pTrMat);
00060 };
00061
00062 }
00063
00064 #endif // __RAY_TRACING_SHADER_H