ogre 使用 RenderSystem::addClipPlane() 添加用户剪切面

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/mansir123/article/details/81206776

若直接调用是不管用的,需要在场景管理器的监听器的preFindVisibleObjects 函数中调用才管用。
使用方法:
(1)写一个类,继承自 Ogre::SceneManager::Listener
(2)重写preFindVisibleObjects 函数

void ShaderSample::preFindVisibleObjects(Ogre::SceneManager* source, Ogre::SceneManager::IlluminationRenderStage irs, Ogre::Viewport* v)
{
    Ogre::Root::getSingletonPtr()->getRenderSystem()->resetClipPlanes(); //清理之前的用户自定义剪切面
    Ogre::Plane tempPlane(Ogre::Vector3::UNIT_Y,2);
    Ogre::Root::getSingletonPtr()->getRenderSystem()->addClipPlane(tempPlane);
}

自己去搞tempPlane即可。

猜你喜欢

转载自blog.csdn.net/mansir123/article/details/81206776