22 #ifndef _RTSHADERSYSTEM_HH_
23 #define _RTSHADERSYSTEM_HH_
30 #include "gazebo/gazebo_config.h"
66 SSLM_NormalMapLightingObjectSpace
86 public:
void AddScene(
ScenePtr _scene);
90 public:
void RemoveScene(
ScenePtr _scene);
93 public:
void UpdateShaders();
97 public:
void AttachEntity(
Visual *vis);
101 public:
void DetachEntity(
Visual *_vis);
106 public:
static void AttachViewport(Ogre::Viewport *_viewport,
112 public:
static void DetachViewport(Ogre::Viewport *_viewport,
117 public:
void SetPerPixelLighting(
bool _set);
121 public:
void GenerateShaders(
Visual *_vis);
125 public:
void ApplyShadows(
ScenePtr _scene);
129 public:
void RemoveShadows(
ScenePtr _scene);
133 public: Ogre::PSSMShadowCameraSetup *GetPSSMShadowCameraSetup()
const;
139 private:
bool GetPaths(std::string &_coreLibsPath,
140 std::string &_cachePath);
142 #if OGRE_VERSION_MAJOR >= 1 && OGRE_VERSION_MINOR >= 7
143 private: Ogre::RTShader::ShaderGenerator *shaderGenerator;
147 private: Ogre::RTShader::SubRenderState *shadowRenderState;
151 private: std::list<Visual*> entities;
154 private:
bool initialized;
157 private:
bool shadowsApplied;
160 private: std::vector<ScenePtr> scenes;
163 private: boost::mutex *entityMutex;
166 private: Ogre::ShadowCameraSetupPtr pssmSetup;