Ogre中可以渲染到纹理,这如同渲染到屏幕上一样,具体的使用方法是:

1 先创建一个纹理,用于接受渲染的内容

TexturePtr renderTexture=TextureManager::getSingleton().createManual("RT",ResourceGroupManager::DEFAULT_RESOURCE_GROUP_NAME,TEX_TYPE_2D,window->getWidth(), window->getHeight(), 0, PF_R8G8B8, TU_RENDERTARGET);

2从这个纹理创建一个rendertarget类

RenderTarget *textureTarget=renderTexture->getBuffer()->getRenderTarget();

3在这个渲染目标上加视口(如同在window上加视口一样)

Viewport*rv=textureTarget->addViewport(cam);
  rv->setClearEveryFrame(true);
   rv->setBackgroundColour(ColourValue::Blue);
    rv->setOverlaysEnabled(false);

4创建一个使用这个纹理的material

MaterialPtr renderMaterial=MaterialManager::getSingleton().create("RM",ResourceGroupManager::DEFAULT_RESOURCE_GROUP_NAME);
renderMaterial->getTechnique(0)->getPass(0)->createTextureUnitState("RT");

这样使用这个material就可以实时的被渲染了

5将这个材质给一个物体

xxx->setMaterialName("RM");

6 如果只这样做,可能会出现这样的现象,比如你在场景中创建了一个子窗口,他也显示整个场景的内容,有时在这个子窗口中也会出现子窗口,因为子窗口也被作为渲染物渲染到子窗口上,所以在RTT中有一个类是RenderTargetListener类,来解决这个问题,这个类用来监听RTT事件,需要override它的两个主要函数preRenderTargetUpdate(),这是在纹理被绘制前的一瞬产生,这时你通常的做法是要隐藏子窗口,还有一个postRenderTargetUpdate(),这个在纹理被刚好绘制好之后执行,这里要做的就是再显现子窗口。当然,为了让这个监听器工作,你需要调用textureTarget->addListener().

Ogre:render to texture相关推荐

  1. chap8_1 Render to texture in OGRE

    渲染到纹理是个很重要的技巧,特别是做海洋,湖泊这种水体渲染的时候.这里在OGRE实现下,到时候我用DX写一个渲染到纹理的例子,那时再讲原理 /*---------------------------- ...

  2. 什么是渲染目标(render target) 渲染到纹理(Render To Texture, RTT)详解

    渲染到纹理(Render To Texture, RTT)详解 RTT是现在很多特效里面都会用到的一项很基本的技术,实现起来很简单,也很重要.但是让人不解的是网上搜索了半天只找到很少的文章说这个事儿, ...

  3. 音视频开发之旅(38) -使用FBO实现渲染到纹理(Render to texture)

    目录 FBO基本知识 FBO实现渲染到纹理的流程 实践 遇到的问题 资料 收获 在之前的学习实践中我们把图片.视频.图形等渲染到屏幕时,采用的是直接屏幕上即默认的帧缓冲区,如果我们在渲染时不想直接渲染 ...

  4. 渲染到纹理(Render to texture):使用FrameBuffer

    弄了一天,找啊找,没找到什么例子,幸好irrlicht里有个使用FrameBuffer渲染到纹理的例子,看了下,一copy,哇,ok了啊. 主要代码: // generate color textur ...

  5. Antialiasing 抗锯齿效果(render to texture锯齿问题处理)

    很多时候需要把相机得texture渲染到texture上.但是效果往往不理想. 如图对比: 没有处理过得效果                                              ...

  6. 使用Render Texture制作游戏中的摄像头

    Render Texture是什么呢? Render Texture是一种你可以在其上绘制,然后像使用其它精灵/纹理一样的纹理.其中,最酷的一件事就是你可以将它作为相机视图的目标--这样相机把它所看到 ...

  7. CeGui+Ogre

    GUI http://lixinyiabc123.blog.163.com/blog/static/140977406201021835146121/ 我们的模拟器与大多数的游戏一样,都有2个主要状态 ...

  8. DXT纹理压缩,Multiple Render Targets

    游戏中对于3D物体表面细节的表现最重要的还是靠贴图来实现的,那么越是高分辨率越是真彩色的贴图自然表现力也是越强,但是同时带来的问题是所需占用的内存会成倍的上升,而节省内存这一点在目前的游戏中还是非常非 ...

  9. 关于Texture Cache简单总结

    Texture Cache是一个存储图片数据的只读cache 按照正常uv顺序读贴图tex cache有高命中率 Texture Cache在 shader processor附近,所以它有高吞吐率, ...

  10. 以OpenGL/ES视角介绍gfx-hal(Vulkan) Framebuffer接口使用

    文档列表见:Rust 移动端跨平台复杂图形渲染项目开发系列总结(目录) 草稿状态 以OpenGL/ES Framebuffer角度看,如果用gfx-hal(Vulkan)接口实现类似OpenGL/ES ...

最新文章

  1. UI设计工作好找吗?有哪些面试技巧?
  2. Consultanting Service
  3. 利用Chrome开发者工具分析C4C Opportunity搜索的前端性能
  4. Android之Content和activity、service、Application关系和attachBaseContext函数调用的时候
  5. Java JUC工具类--ForkJoin
  6. 计算机绘图模型的参数方程,关于曲线绘图与运动控制问题的研究.doc
  7. 2021 年 6 月程序员工资统计,反作弊算法工程师太可怕了。。
  8. Spyder has encountered an internal problem!问题解决过程
  9. mysqlbinlog配置
  10. 【剑指Offer】60、把二叉树打印成多行
  11. css3实现进度条的模拟
  12. struts2 空文件上传解决
  13. 爱荷华州立大学计算机科学,爱荷华州立计算机科学庆祝成立50周年
  14. mac 查看 本地网络代理
  15. 安卓ui xml_创建声明性XML UI语言
  16. 《MATLAB 神经网络43个案例分析》:第25章 基于MIV的神经网络变量筛选----基于BP神经网络的变量筛选
  17. 做马来西亚Lazada的选品技巧是什么
  18. 房企买房送车位的涉税风险
  19. FLASH脚本基础入门讲解1
  20. 我写的一个 C++ 复数类

热门文章

  1. python金融资产估值模型_估值方法梳理 把CFA二级书本中提及的企业估值方法在白板上全列了一遍。 一、 静心思考,绝对估值法(DCF、FCFF、FCFE、RI)... - 雪球...
  2. Java复习---基础复习
  3. Fiddler远程抓包
  4. 冷高轮时间 小人人体形状造型 手势 麻将 扑克 数字时钟APP android安卓版本/iOS苹果版本
  5. Excel或C语言复数运算
  6. 赋能泉城 2017中国软件生态大会再下一城
  7. Unity查找图片被哪个Prefab引用
  8. 数据禾|2001年东四盟地区植被类型分布数据
  9. php 点击刷新验证码,thinkphp3.2点击刷新生成验证码
  10. 项目经理需要具备的技能