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;
Singleton template class.
Definition: SingletonT.hh:33
Per-Vertex lighting: best performance.
Definition: RTShaderSystem.hh:58
LightingModel
Definition: RTShaderSystem.hh:55
Normal Map lighting: lighting calculations have been stored in a light map (texture) using tangent sp...
Definition: RTShaderSystem.hh:63
A renderable object.
Definition: Visual.hh:62
Implements Ogre's Run-Time Shader system.
Definition: RTShaderSystem.hh:51
boost::shared_ptr< Scene > ScenePtr
Definition: RenderTypes.hh:74
GAZEBO_VISIBLE void Init(google::protobuf::Message &_message, const std::string &_id="")
Initialize a message.
Per-Pixel lighting: best look.
Definition: RTShaderSystem.hh:60
#define GAZEBO_VISIBLE
Use to represent "symbol visible" if supported.
Definition: system.hh:48