18 #ifndef _GAZEBO_RTSHADERSYSTEM_HH_
19 #define _GAZEBO_RTSHADERSYSTEM_HH_
25 #include "gazebo/gazebo_config.h"
38 class RTShaderSystemPrivate;
64 SSLM_NormalMapLightingObjectSpace
173 private:
bool GetPaths(std::string &_coreLibsPath,
174 std::string &_cachePath);
178 private:
void UpdateShaders(
VisualPtr _vis);
181 private:
void ReapplyShadows();
188 private: RTShaderSystemPrivate *dataPtr;
rendering
Definition: RTShaderSystem.hh:32
Singleton template class.
Definition: SingletonT.hh:34
Implements Ogre's Run-Time Shader system.
Definition: RTShaderSystem.hh:50
void Fini()
Finalize the shader system.
void AddScene(ScenePtr _scene)
Add a scene manager.
static void AttachViewport(Ogre::Viewport *_viewport, ScenePtr _scene)
Set a viewport to use shaders.
void SetShadowSplitPadding(const double _padding)
Set the overlap between PSSM shadow maps.
void GenerateShaders(const VisualPtr &_vis)
Generate shaders for an entity.
void RemoveScene(ScenePtr _scene)
Remove a scene.
void Init()
Init the run time shader system.
void SetShadowSplitLambda(const double _lambda)
Set the PSSM lambda value for determining how linear or logarithmic choice of split points will be.
unsigned int ShadowTextureSize() const
Get the shadow texture size.
LightingModel
Definition: RTShaderSystem.hh:54
@ SSLM_PerPixelLighting
Per-Pixel lighting: best look.
Definition: RTShaderSystem.hh:58
@ SSLM_NormalMapLightingTangentSpace
Normal Map lighting: lighting calculations have been stored in a light map (texture) using tangent sp...
Definition: RTShaderSystem.hh:61
@ SSLM_PerVertexLighting
Per-Vertex lighting: best performance.
Definition: RTShaderSystem.hh:56
void UpdateShaders()
Queue a call to update the shaders.
bool SetShadowTextureSize(const unsigned int _size)
Set the shadow texture size.
void SetPerPixelLighting(bool _set)
Set the lighting model to per pixel or per vertex.
double ShadowNearClip() const
Get the shadow near clip distance.
void RemoveShadows(ScenePtr _scene)
Remove shadows from a scene.
void RemoveScene(const std::string &_scene)
Remove a scene.
double ShadowSplitPadding() const
Get the PSSM split point overlap.
void ApplyShadows(ScenePtr _scene)
Apply shadows to a scene.
double ShadowFarClip() const
Get the shadow far clip distance.
void SetShadowClipDist(const double _near, const double _far)
Set the shadow clip distances.
Ogre::PSSMShadowCameraSetup * GetPSSMShadowCameraSetup() const
Get the Ogre PSSM Shadows camera setup.
double ShadowSplitLambda() const
Get the PSSM split point lambda value.
void Update()
Update the RT shaders. This should not be called frequently.
static void DetachViewport(Ogre::Viewport *_viewport, ScenePtr _scene)
Set a viewport to not use shaders.
#define GZ_SINGLETON_DECLARE(visibility, n1, n2, singletonType)
Helper to declare typed SingletonT.
Definition: SingletonT.hh:61
std::shared_ptr< Visual > VisualPtr
Definition: RenderTypes.hh:114
boost::shared_ptr< Scene > ScenePtr
Definition: RenderTypes.hh:82
Forward declarations for the common classes.
Definition: Animation.hh:27