void C3DPostEffect::draw() { if (_material == NULL) return; if(_postProcess->getModel()->getMaterial() != _material) { _postProcess->getModel()->setMaterial(_material); } setShaderParameter(); _postProcess->getModel()->draw(); }
//! //! Callback when instance of this class is registered as Ogre::CompositorListener. //! //! \param pass_id Id to identifiy current compositor pass. //! \param mat Material this pass is currently using. //! void ScratchedFilmNode::notifyMaterialRender(Ogre::uint32 pass_id, Ogre::MaterialPtr &mat) { Ogre::TexturePtr inputTexture = getTextureValue("Input Map"); if (inputTexture.isNull()) return; // watercolor pass if (pass_id == 0000) { // set shader parameters Ogre::GpuProgramParametersSharedPtr fpParams = getShaderParameters(mat); if (!fpParams.isNull()) { setShaderParameter(fpParams, "speed1", (Ogre::Real)(getDoubleValue("Speed1") / 100.0)); setShaderParameter(fpParams, "speed2", (Ogre::Real)(getDoubleValue("Speed2") / 100.0)); setShaderParameter(fpParams, "speed1", (Ogre::Real)(getDoubleValue("Speed1") / 100.0)); setShaderParameter(fpParams, "scratchIntensity", (Ogre::Real)(getDoubleValue("ScratchIntensity") / 100.0)); setShaderParameter(fpParams, "is", (Ogre::Real)(getDoubleValue("IS") / 100.0)); } // set texture name setTexture(mat, inputTexture, 0); } }