void GroundFog::setColour (const Ogre::ColourValue &colour) { for (PassSet::iterator it = mPasses.begin(); it != mPasses.end(); ++it) { Ogre::GpuProgramParametersSharedPtr params = (*it)->getFragmentProgramParameters(); params->setNamedConstant("fogColour", colour); } mFogColour = colour; updateSkyFogging(); }
void GroundFog::setGroundLevel (Ogre::Real groundLevel) { if (Ogre::Math::Abs(mGroundLevel - groundLevel) > 0.000001) { for (PassFogParamsVector::const_iterator it = mPassFogParams.begin(), end = mPassFogParams.end(); it != end; ++it) { it->fogGroundLevel.set(it->fpParams, groundLevel); } mGroundLevel = groundLevel; } updateSkyFogging(); }
void GroundFog::setVerticalDecay (Ogre::Real verticalDecay) { if (Ogre::Math::Abs(mVerticalDecay - verticalDecay) > 0.000001) { for (PassFogParamsVector::const_iterator it = mPassFogParams.begin(), end = mPassFogParams.end(); it != end; ++it) { it->fogVerticalDecay.set(it->fpParams, verticalDecay); } mVerticalDecay = verticalDecay; } updateSkyFogging(); }
void GroundFog::setDensity (Ogre::Real density) { if (Ogre::Math::Abs(mDensity - density) > 0.000001) { for (PassFogParamsVector::const_iterator it = mPassFogParams.begin(), end = mPassFogParams.end(); it != end; ++it) { it->fogDensity.set(it->fpParams, density); } mDensity = density; } updateSkyFogging(); }
void GroundFog::forceUpdate () { for (PassSet::iterator it = mPasses.begin(); it != mPasses.end(); ++it) { Ogre::GpuProgramParametersSharedPtr params = (*it)->getFragmentProgramParameters(); params->setNamedConstant("fogDensity", mDensity); params->setNamedConstant("fogVerticalDecay", mVerticalDecay); params->setNamedConstant("fogGroundLevel", mGroundLevel); params->setNamedConstant("fogColour", mFogColour); } updateSkyFogging(); }
void GroundFog::setGroundLevel (Ogre::Real groundLevel) { if (Ogre::Math::Abs(mGroundLevel - groundLevel) > 0.000001) { for (PassSet::iterator it = mPasses.begin(); it != mPasses.end(); ++it) { Ogre::GpuProgramParametersSharedPtr params = (*it)->getFragmentProgramParameters(); params->setNamedConstant("fogGroundLevel", groundLevel); } mGroundLevel = groundLevel; } updateSkyFogging(); }
void GroundFog::setVerticalDecay (Ogre::Real verticalDecay) { if (Ogre::Math::Abs(mVerticalDecay - verticalDecay) > 0.000001) { for (PassSet::iterator it = mPasses.begin(); it != mPasses.end(); ++it) { Ogre::GpuProgramParametersSharedPtr params = (*it)->getFragmentProgramParameters(); params->setNamedConstant("fogVerticalDecay", verticalDecay); } mVerticalDecay = verticalDecay; } updateSkyFogging(); }
void GroundFog::setDensity (Ogre::Real density) { if (Ogre::Math::Abs(mDensity - density) > 0.000001) { for (PassSet::iterator it = mPasses.begin(); it != mPasses.end(); ++it) { Ogre::GpuProgramParametersSharedPtr params = (*it)->getFragmentProgramParameters(); params->setNamedConstant("fogDensity", density); } mDensity = density; } updateSkyFogging(); }
void GroundFog::forceUpdate () { updatePassFogParams(); for (PassFogParamsVector::const_iterator it = mPassFogParams.begin(), end = mPassFogParams.end(); it != end; ++it) { const PassFogParams& params = *it; params.fogDensity.set(params.fpParams, mDensity); params.fogVerticalDecay.set(params.fpParams, mVerticalDecay); params.fogGroundLevel.set(params.fpParams, mGroundLevel); params.fogColour.set(params.fpParams, mFogColour); } updateSkyFogging(); }
void GroundFog::setColour (const Ogre::ColourValue &colour) { bool different = Ogre::Math::Abs(mFogColour.r - colour.r) > 0.001 || Ogre::Math::Abs(mFogColour.g - colour.g) > 0.001 || Ogre::Math::Abs(mFogColour.b - colour.b) > 0.001 || Ogre::Math::Abs(mFogColour.a - colour.a) > 0.001; if (different) { for (PassFogParamsVector::const_iterator it = mPassFogParams.begin(), end = mPassFogParams.end(); it != end; ++it) { it->fogColour.set(it->fpParams, colour); } mFogColour = colour; } updateSkyFogging(); }