OGRE RTT笔记

开发环境  

ogre 1.71

 

教程

Intermediate Tutorial 7         Render to texture (RTT) 

http://www.ogre3d.org/tikiwiki/Intermediate+Tutorial+7&structure=Tutorials

 

关键代码:

//! 创建渲染纹理

Ogre::TexturePtr rtt_texture = Ogre::TextureManager::getSingleton().createManual("RttTex", Ogre::ResourceGroupManager::DEFAULT_RESOURCE_GROUP_NAME, Ogre::TEX_TYPE_2D, mWindow->getWidth(), mWindow->getHeight(), 0, Ogre::PF_R8G8B8, Ogre::TU_RENDERTARGET);

Ogre::RenderTexture *renderTexture = rtt_texture->getBuffer()->getRenderTarget();

renderTexture->addViewport(mCamera);

renderTexture->getViewport(0)->setClearEveryFrame(true);

renderTexture->getViewport(0)->setBackgroundColour(Ogre::ColourValue::Blue);

renderTexture->getViewport(0)->setOverlaysEnabled(false);

renderTexture->addListener(this);

 

//! 创建材质

Ogre::MaterialPtr renderMaterial = Ogre::MaterialManager::getSingleton().create("RttMat", Ogre::ResourceGroupManager::DEFAULT_RESOURCE_GROUP_NAME);

Ogre::Technique* matTechnique = renderMaterial->createTechnique();

matTechnique->createPass();

renderMaterial->getTechnique(0)->getPass(0)->setLightingEnabled(false);

renderMaterial->getTechnique(0)->getPass(0)->createTextureUnitState("RttTex");

 

//! 创建矩形

mMiniScreen = OGRE_NEW Ogre::Rectangle2D(true);

mMiniScreen->setCorners(0.5f, -0.5f, 1.0f, -1.0f);

mMiniScreen->setBoundingBox(Ogre::AxisAlignedBox(-100000.0f * Ogre::Vector3::UNIT_SCALE, 100000.0f * Ogre::Vector3::UNIT_SCALE));

mMiniScreen->setMaterial("RttMat");

 

//! 创建节点

Ogre::SceneNode* miniScreenNode = mSceneMgr->getRootSceneNode()->createChildSceneNode("MiniScreenNode");

miniScreenNode->attachObject(mMiniScreen);

 

漫谈

-------------------------------------

RTT主要用在效果展现时与shaders混合使用,例如模糊效果。发明RTT的想法很简单,将渲染结果存成原始数据还不如保存成纹理,保存成纹理后直接交给GPU处理。

 

这里是创建的一个OGRE矩形展现纹理,之前也介绍过创建一个CEGUI窗口展现矩形,似乎不与特定的窗口相关,既然渲染到纹理了,想如何处理都可以。

 

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值