Ogre:render to texture
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相关推荐
- chap8_1 Render to texture in OGRE
渲染到纹理是个很重要的技巧,特别是做海洋,湖泊这种水体渲染的时候.这里在OGRE实现下,到时候我用DX写一个渲染到纹理的例子,那时再讲原理 /*---------------------------- ...
- 什么是渲染目标(render target) 渲染到纹理(Render To Texture, RTT)详解
渲染到纹理(Render To Texture, RTT)详解 RTT是现在很多特效里面都会用到的一项很基本的技术,实现起来很简单,也很重要.但是让人不解的是网上搜索了半天只找到很少的文章说这个事儿, ...
- 音视频开发之旅(38) -使用FBO实现渲染到纹理(Render to texture)
目录 FBO基本知识 FBO实现渲染到纹理的流程 实践 遇到的问题 资料 收获 在之前的学习实践中我们把图片.视频.图形等渲染到屏幕时,采用的是直接屏幕上即默认的帧缓冲区,如果我们在渲染时不想直接渲染 ...
- 渲染到纹理(Render to texture):使用FrameBuffer
弄了一天,找啊找,没找到什么例子,幸好irrlicht里有个使用FrameBuffer渲染到纹理的例子,看了下,一copy,哇,ok了啊. 主要代码: // generate color textur ...
- Antialiasing 抗锯齿效果(render to texture锯齿问题处理)
很多时候需要把相机得texture渲染到texture上.但是效果往往不理想. 如图对比: 没有处理过得效果 ...
- 使用Render Texture制作游戏中的摄像头
Render Texture是什么呢? Render Texture是一种你可以在其上绘制,然后像使用其它精灵/纹理一样的纹理.其中,最酷的一件事就是你可以将它作为相机视图的目标--这样相机把它所看到 ...
- CeGui+Ogre
GUI http://lixinyiabc123.blog.163.com/blog/static/140977406201021835146121/ 我们的模拟器与大多数的游戏一样,都有2个主要状态 ...
- DXT纹理压缩,Multiple Render Targets
游戏中对于3D物体表面细节的表现最重要的还是靠贴图来实现的,那么越是高分辨率越是真彩色的贴图自然表现力也是越强,但是同时带来的问题是所需占用的内存会成倍的上升,而节省内存这一点在目前的游戏中还是非常非 ...
- 关于Texture Cache简单总结
Texture Cache是一个存储图片数据的只读cache 按照正常uv顺序读贴图tex cache有高命中率 Texture Cache在 shader processor附近,所以它有高吞吐率, ...
- 以OpenGL/ES视角介绍gfx-hal(Vulkan) Framebuffer接口使用
文档列表见:Rust 移动端跨平台复杂图形渲染项目开发系列总结(目录) 草稿状态 以OpenGL/ES Framebuffer角度看,如果用gfx-hal(Vulkan)接口实现类似OpenGL/ES ...
最新文章
- UI设计工作好找吗?有哪些面试技巧?
- Consultanting Service
- 利用Chrome开发者工具分析C4C Opportunity搜索的前端性能
- Android之Content和activity、service、Application关系和attachBaseContext函数调用的时候
- Java JUC工具类--ForkJoin
- 计算机绘图模型的参数方程,关于曲线绘图与运动控制问题的研究.doc
- 2021 年 6 月程序员工资统计,反作弊算法工程师太可怕了。。
- Spyder has encountered an internal problem!问题解决过程
- mysqlbinlog配置
- 【剑指Offer】60、把二叉树打印成多行
- css3实现进度条的模拟
- struts2 空文件上传解决
- 爱荷华州立大学计算机科学,爱荷华州立计算机科学庆祝成立50周年
- mac 查看 本地网络代理
- 安卓ui xml_创建声明性XML UI语言
- 《MATLAB 神经网络43个案例分析》:第25章 基于MIV的神经网络变量筛选----基于BP神经网络的变量筛选
- 做马来西亚Lazada的选品技巧是什么
- 房企买房送车位的涉税风险
- FLASH脚本基础入门讲解1
- 我写的一个 C++ 复数类
热门文章
- python金融资产估值模型_估值方法梳理 把CFA二级书本中提及的企业估值方法在白板上全列了一遍。 一、 静心思考,绝对估值法(DCF、FCFF、FCFE、RI)... - 雪球...
- Java复习---基础复习
- Fiddler远程抓包
- 冷高轮时间 小人人体形状造型 手势 麻将 扑克 数字时钟APP android安卓版本/iOS苹果版本
- Excel或C语言复数运算
- 赋能泉城 2017中国软件生态大会再下一城
- Unity查找图片被哪个Prefab引用
- 数据禾|2001年东四盟地区植被类型分布数据
- php 点击刷新验证码,thinkphp3.2点击刷新生成验证码
- 项目经理需要具备的技能