42class SLightShaft :
public Ogre::RenderTargetListener,
public Ogre::MaterialManager::Listener
50 std::queue<std::string> mMaterials;
51 Ogre::Camera* mLightCamera;
54 Ogre::BillboardSet* mBillboardSet;
55 Ogre::MaterialPtr mShaftMaterial;
56 Ogre::MaterialPtr mDepthMaterial;
57 Ogre::TexturePtr mDepthTexture;
63 SLightShaft(
SNode* parent,
float minStep = 0.2f,
float nearClip = 1.0f,
float farClip = 50.0f, Ogre::Radian fov = Ogre::Degree(17.5f));
75 void SetColor(Ogre::ColourValue col);
81 virtual Ogre::Technique*
handleSchemeNotFound(
unsigned short schemeIndex,
const Ogre::String& schemeName, Ogre::Material* originalMaterial,
unsigned short lodIndex,
const Ogre::Renderable* rend);
90 void preRenderTargetUpdate(
const Ogre::RenderTargetEvent& evt);
91 void postRenderTargetUpdate(
const Ogre::RenderTargetEvent& evt);
93 void UpdatePosition();
94 void UpdateTextureProjectionMatrix();
95 void CreateLightShafts();
96 void CreateLightCameraRTT();
virtual Ogre::Technique * handleSchemeNotFound(unsigned short schemeIndex, const Ogre::String &schemeName, Ogre::Material *originalMaterial, unsigned short lodIndex, const Ogre::Renderable *rend)