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;
gazebo
Definition RTShaderSystem.hh:32
rendering
Definition RTShaderSystem.hh:32
rendering
Definition RenderEngine.hh:31
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.
Ogre::PSSMShadowCameraSetup * GetPSSMShadowCameraSetup() const
Get the Ogre PSSM Shadows camera setup.
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.
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:58
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