Ogre中渲染到纹理的步骤

来源:互联网 发布:淘宝一直显示被挤爆了 编辑:程序博客网 时间:2024/05/01 20:31

 在我看来,渲染到纹理和渲染到某个窗口其实没多大区别,如果一定要说点区别,那就是渲染的目标不同,后者是窗口,前者是某个纹理。

    下面列出摘抄自某网友博客上的关于渲染到纹理的三部曲:

    1、创建渲染目标纹理,关键要指定TU_RENDERTARGET参数,在创建这个渲染目标纹理的过程中,Ogre会自动调用  Root::getSingleton().getRenderSystem()->attachRenderTarget把这个纹理添加到Root的渲染目标中,也就是说每帧都会渲染到这个纹理。
     TexturePtr texture = TextureManager::getSingleton().createManual( "RttTex",
     ResourceGroupManager::DEFAULT_RESOURCE_GROUP_NAME, TEX_TYPE_2D,
     512, 512, 0, PF_R8G8B8, TU_RENDERTARGET );

    2、获得渲染目标,有了渲染目标,才能给目标指定视口和摄像机
    RenderTarget *rttTex = texture->getBuffer()->getRenderTarget();

    3、给这个渲染目标指定摄像机,做了这步骤之后,每帧更新时就会把这个摄像机看到的东西渲染到texture中
    Viewport *v = rttTex->addViewport( mReflectCam );