Public Types | Public Member Functions | Static Public Member Functions | List of all members
gazebo::rendering::RTShaderSystem Class Reference

Implements Ogre's Run-Time Shader system. More...

#include <rendering/rendering.hh>

Inheritance diagram for gazebo::rendering::RTShaderSystem:
Inheritance graph
[legend]

Public Types

enum  LightingModel { SSLM_PerVertexLighting, SSLM_PerPixelLighting, SSLM_NormalMapLightingTangentSpace, SSLM_NormalMapLightingObjectSpace }
 

Public Member Functions

void AddScene (ScenePtr _scene)
 Add a scene manager. More...
 
void ApplyShadows (ScenePtr _scene)
 Apply shadows to a scene. More...
 
void AttachEntity (Visual *vis)
 Set an Ogre::Entity to use RT shaders. More...
 
void Clear ()
 Clear the shader system. More...
 
void DetachEntity (Visual *_vis)
 Remove and entity. More...
 
void Fini ()
 Finalize the shader system. More...
 
void GenerateShaders (Visual *_vis)
 Generate shaders for an entity. More...
 
Ogre::PSSMShadowCameraSetup * GetPSSMShadowCameraSetup () const
 Get the Ogre PSSM Shadows camera setup. More...
 
void Init ()
 Init the run time shader system. More...
 
void RemoveScene (ScenePtr _scene)
 Remove a scene. More...
 
void RemoveShadows (ScenePtr _scene)
 Remove shadows from a scene. More...
 
void SetPerPixelLighting (bool _set)
 Set the lighting model to per pixel or per vertex. More...
 
void UpdateShaders ()
 Update the shaders. This should not be called frequently. More...
 

Static Public Member Functions

static void AttachViewport (Ogre::Viewport *_viewport, ScenePtr _scene)
 Set a viewport to use shaders. More...
 
static void DetachViewport (Ogre::Viewport *_viewport, ScenePtr _scene)
 Set a viewport to not use shaders. More...
 
- Static Public Member Functions inherited from SingletonT< RTShaderSystem >
static RTShaderSystem * Instance ()
 Get an instance of the singleton. More...
 

Additional Inherited Members

- Protected Member Functions inherited from SingletonT< RTShaderSystem >
 SingletonT ()
 Constructor. More...
 
virtual ~SingletonT ()
 Destructor. More...
 

Detailed Description

Implements Ogre's Run-Time Shader system.

This class allows Gazebo to generate per-pixel shaders for every material at run-time.

Member Enumeration Documentation

The type of lighting.

Enumerator
SSLM_PerVertexLighting 

Per-Vertex lighting: best performance.

SSLM_PerPixelLighting 

Per-Pixel lighting: best look.

SSLM_NormalMapLightingTangentSpace 

Normal Map lighting: lighting calculations have been stored in a light map (texture) using tangent space.

SSLM_NormalMapLightingObjectSpace 

Normal Map lighting: lighting calculations have been stored in a light map (texture) using object space.

Member Function Documentation

void gazebo::rendering::RTShaderSystem::AddScene ( ScenePtr  _scene)

Add a scene manager.

Parameters
[in]_sceneThe scene to process
void gazebo::rendering::RTShaderSystem::ApplyShadows ( ScenePtr  _scene)

Apply shadows to a scene.

Parameters
[in]_sceneThe scene to receive shadows.
void gazebo::rendering::RTShaderSystem::AttachEntity ( Visual vis)

Set an Ogre::Entity to use RT shaders.

Parameters
[in]_visVisual that will use the RTShaderSystem.
static void gazebo::rendering::RTShaderSystem::AttachViewport ( Ogre::Viewport *  _viewport,
ScenePtr  _scene 
)
static

Set a viewport to use shaders.

Parameters
[in]_viewportThe viewport to add.
[in]_sceneThe scene that the viewport uses.
void gazebo::rendering::RTShaderSystem::Clear ( )

Clear the shader system.

void gazebo::rendering::RTShaderSystem::DetachEntity ( Visual _vis)

Remove and entity.

Parameters
[in]_visRemove this visual.
static void gazebo::rendering::RTShaderSystem::DetachViewport ( Ogre::Viewport *  _viewport,
ScenePtr  _scene 
)
static

Set a viewport to not use shaders.

Parameters
[in]_viewportThe viewport to remove.
[in]_sceneThe scene that the viewport uses.
void gazebo::rendering::RTShaderSystem::Fini ( )

Finalize the shader system.

void gazebo::rendering::RTShaderSystem::GenerateShaders ( Visual _vis)

Generate shaders for an entity.

Parameters
[in]_visThe visual to generate shaders for.
Ogre::PSSMShadowCameraSetup* gazebo::rendering::RTShaderSystem::GetPSSMShadowCameraSetup ( ) const

Get the Ogre PSSM Shadows camera setup.

Returns
The Ogre PSSM Shadows camera setup.
void gazebo::rendering::RTShaderSystem::Init ( )

Init the run time shader system.

void gazebo::rendering::RTShaderSystem::RemoveScene ( ScenePtr  _scene)

Remove a scene.

Parameters
[in]Thescene to remove
void gazebo::rendering::RTShaderSystem::RemoveShadows ( ScenePtr  _scene)

Remove shadows from a scene.

Parameters
[in]_sceneThe scene to remove shadows from.
void gazebo::rendering::RTShaderSystem::SetPerPixelLighting ( bool  _set)

Set the lighting model to per pixel or per vertex.

Parameters
[in]_setTrue means to use per-pixel shaders.
void gazebo::rendering::RTShaderSystem::UpdateShaders ( )

Update the shaders. This should not be called frequently.


The documentation for this class was generated from the following file: