|
我使用的事Ogre1.7.5,里面的控件使用的是sdktrayer做的,我想把一个合成器通道中的纹理用于一个widget控件的材质单元。里面的代码都是完全按照compositor Demo里面的代码照搬过来的,但是那个控件的材质背景动态变化的效果出不来,运行时报错如下:
OGRE EXCEPTION(1:InvalidStateException): A pass that wishes to reference a compositor texutre attempted to render in a pipeline without a compositor in SceneManager::_setPass at ..\..\..\..\OgreMain\src\OgreSceneManager.cpp (line 1159)
Ogre::CompositorManager::getSingleton().addCompositor(vp,compositorName,addposition);
Ogre::CompositorManager::getSingleton().setCompositorEnabled(vp,compositorName,false);
m_DebugTextureTUS=debugRTTContainer->getChild("DebugRTTPanel/PictureFrame")->getMaterial()->getBestTechnique()->getPass(0)->getTextureUnitState(0);
m_DebugTextureTUS->setContentType(Ogre::TextureUnitState::CONTENT_COMPOSITOR);
if (parts.size()==2)
{
m_DebugTextureTUS->setCompositorReference(parts[0],parts[1]);
}
else
{
m_DebugTextureTUS->setCompositorReference(parts[0],parts[1]),Ogre::StringConverter::parseUnsignedInt(parts[2]);
}
里面的脚本使用的是Demo里面自带的example.compositor脚本
求高手指教那里出错 |
|