
OGRE
文章平均质量分 81
wang371372
这个作者很懒,什么都没留下…
展开
-
渲染到纹理(转载)
渲染到纹理实现方式:1. 渲染到帧缓存,然后用glReadPixels将需要的部分读入到客户内存,然后使用glTexImage()函数创建纹理 缺点:比较慢2.渲染到帧缓存,然后使用glCopyTexImage() 直接从帧缓存创建纹理3.渲染到帧缓存,然后使用glCopyTexSubImage() 从帧缓存中读出需要的部分更新纹理的一部分转载 2014-11-14 17:45:47 · 1045 阅读 · 0 评论 -
Ogre:render to texture
Ogre中可以渲染到纹理,这如同渲染到屏幕上一样,具体的使用方法是:1 先创建一个纹理,用于接受渲染的内容TexturePtr renderTexture=TextureManager::getSingleton().createManual("RT",ResourceGroupManager::DEFAULT_RESOURCE_GROUP_NAME,TEX_TYPE_2D,win转载 2015-03-26 12:00:16 · 410 阅读 · 0 评论 -
Ogre渲染队列RenderQueue结构图
渲染队列RenderQueue(自优快云博客http://blog.youkuaiyun.com/qq18052887/archive/2010/08/15/5812611.aspx)1. RenderQueue的组成RenderQueue由Ogre::RenderQueueGroup组成的,RenderQueue中有一个RenderQueueGroup的Map的数据成员:t转载 2015-03-26 14:47:40 · 575 阅读 · 0 评论 -
使用渲染到纹理例子
使用渲染到纹理例子 在Ogre的演示程序中提供了一些渲染到纹理的例子。在接下来的部分,我们将重点介绍这些例程的实现细节,以便让我们进一步了解纹理渲染目标的使用方法。 Demo_RenderToTexture 这是一个使用渲染到纹理技术的最基本的例子,代码也比较容易理解。我们首先在原点处放置一个平面,然后布置相应的摄像机把场景中的内容映射到平面所使用的材质纹理转载 2015-03-27 10:18:57 · 1676 阅读 · 0 评论 -
CEGUI中文显示提速
在做游任务显示中文的时候,如果任务中有太多的中文,UI的显示超级的慢。这个问题是需要结局的,遂超找资料,看到了这位仁兄的写的文档,觉得对我这样的新手还是挺有帮助的,估计自己找原因再去写代码的话,也得花上一两天的时间。有资料帮助,两小时搞定,病对其中存在的一些小问题根据我的需要做了相应的修改。 这位仁兄的文章如下,希望也能给其他人一些帮助吧 方法如下(引用):http转载 2015-03-27 10:22:08 · 498 阅读 · 0 评论 -
简要分析Ogre渲染队列的实现原理(一)
渲染队列在Ogre中是一个重要的概念,在场景中的所有物体都会在绘制前被Ogre放入到一个特定的渲染队列中。渲染队列主要起两个作用:1.确保正确的绘制顺序。比如先绘制天空盒再绘制一般物体,最后绘制界面。2.提高渲染效率。Ogre将具有相同pass的物体放在一起进行绘制,目的是尽可能减少渲染状态的切换。一般用户常用的是在entity中设置渲染队列序号,其实整个渲染队列的工作流程远远比这个复杂,但基本不转载 2015-03-26 20:33:09 · 458 阅读 · 0 评论 -
简要分析Ogre的渲染队列实现原理(二)
简要说Ogre渲染主流程分三步使用渲染队列:清空、构造和访问,这个过程在每一帧的绘制过程中重复执行。渲染队列的清空 Ogre在每一帧渲染前都会先清空渲染队列。熟悉Ogre渲染流程的很容易看到在SceneManager::_renderScene() 这个方法中调用prepareRenderQueue()方法。这个方法的实现很简单,就是清空现在的渲染队列并且初始化渲染队列的一些配置参数转载 2015-03-26 20:34:06 · 1062 阅读 · 0 评论 -
GRE质材和渲染:1.Ogre渲染目标
Ogre渲染目标在Ogre中,并没有要求你一定要把最终的显示画面渲染到图形显示设备上。换句话说,Ogre最终渲染到帧缓存的结果(颜色数据),既可以在显示器上面展示也可以输送到其他渲染目标。在这里,渲染目标的概念是一个用来保存渲染结果(二维信息)的存储区域,它既可以在显存中也可以在AGP[1]的共享储存区域中。最基本和普通的渲染目标当然是程序的主窗口。就是那个可以被你在操作系统中改变转载 2015-03-26 20:39:16 · 948 阅读 · 0 评论 -
ogre渲染流程
6. RenderTargetRenderTarget用来接收渲染操作的结果,它可以是屏幕上的窗口、离屏面(如texture)等。FPS信息的统计也是由RenderTarget完成的。在RenderTarget每次更新完成后,将会更新统计信息(封装于FrameStats中)。 除了负责统计帧的信息外,RenderTarget还负责创建维护Viewport(视口):typedef转载 2015-06-03 20:11:18 · 545 阅读 · 0 评论 -
Vertex Texture Fetch 顶点纹理拾取
是的,在vertex shader里也可以检索纹理。我本来觉得这没什么好奇怪的,因为我一直也觉得这很当然可以啊~当初橙书(OpenGL Shading Language Edtion2)也说过texture2D这类函数不是fragment shader专用的,倒还有texture2DLod这种在vertex shader里专用的(后面一句是马后炮~),只是我不知道怎么用,在哪里用,以及更重要的:为转载 2015-06-09 09:58:35 · 2647 阅读 · 0 评论 -
ogre内存管理
OGRE内存分配策略相关文件及简述OGRE提供了自己的内存分配策略,甚至为STL容器提供了新的分配策略,相关文件及简述如下:OgreMemoryAllocatedObject.h OgreMemoryAllocatedObject.cpp// 所有使用Ogre内存分配器的类的父类OgreMemoryAllocatorConfig.h// 配转载 2015-03-26 09:10:30 · 436 阅读 · 0 评论 -
Ogre的内存分配策略
读这个之前,强烈建议看一下Alexandrescu的modern c++的第一章关于policy技术的解释。应该是这哥们发明的,这里只是使用。首先列出涉及到的头文件:(这几个头文件彼此之间相关性挺大的,应该一起看)只在调试期使用:OgreMemoryTracker.h这个头文件中定义了MemoryTracker这个类,用来测试和调试Ogre的内存分配系统的。能跟踪内转载 2015-03-25 21:40:29 · 553 阅读 · 0 评论 -
OGRE错误
OGRE EXCEPTION(2:InvalidParametersException): Cannot find requested emitter type. in ParticleSystemManager::_createEmitter at ..\..\ogre\OgreMain\src\OgreParticleSystemManager.cpp (line 353)A:转载 2014-11-06 15:46:51 · 1142 阅读 · 0 评论 -
OGRE中的OGRE EXCEPTION(6:FileNotFoundException)错误
今天看别人的源码,出现“OGRE EXCEPTION(6:FileNotFoundException):*resources_d.cfg* file not found! in ConfigFile::load at ..\src\ogreconfigfile.cpp(line 88)。这个错误以前解决过,好久不用,再次出现的时候,以为只要把resources_d.cfg拷贝到自己程序 的当前原创 2014-12-02 18:15:06 · 4181 阅读 · 0 评论 -
OGRE启动过程详解(OGRE HelloWorld程序原理解析)
本文介绍 OGRE 3D 1.9 程序的启动过程,即从程序启动到3D图形呈现,背后有哪些OGRE相关的代码被执行。会涉及的OGRE类包括:RootRenderSystemRenderWindowResourceGroupManagerLogManagerViewportSceneManagerCameraSceneNodeEntityLight 建议在阅读本文时参考 OGRE转载 2014-12-05 14:57:37 · 1303 阅读 · 0 评论 -
Ogre骨骼动画
一、基本框架先看一下OGRE动画的基本框架:http://blog.youkuaiyun.com/leonwei/article/details/5819248 二、动画控制OGRE的基本动画控制是很简单的,设置一个动画的操作是这样: // Set idle animationmAnimationState = ent->getAnimation转载 2015-01-12 13:49:41 · 592 阅读 · 0 评论 -
ogre中的材质脚本
资源组管理器初始化完毕时,装载材质脚本,OGRE会自动的在组相关的资源位置查找".materal”扩展名的文件,并对这些脚本进行语法解 析。手动解析可以通过MaterialSerializer::parseScript()。但是注意的是:解析脚本时并没有对脚本中定义的全部纹理等资 源进行加载,所以,在我们访问一个材质的时候,一定要确保它已经装载,或者,我们手动将此材质Load()一次再进行访问。另转载 2015-01-12 11:05:54 · 805 阅读 · 0 评论 -
Ogre的SceneManager分析
后把RenderableList组织成SolidRenderablePassMap: typedef std::vector RenderableList;typedef std::map SolidRenderablePassMap;SolidRenderablePassMap mSolidPasses;SolidRenderablePassMap mSo转载 2015-01-13 15:30:20 · 553 阅读 · 0 评论 -
简要分析OGRE渲染队列的实现原理(二)
简要说Ogre渲染主流程分三步使用渲染队列:清空、构造和访问,这个过程在每一帧的绘制过程中重复执行。渲染队列的清空 Ogre在每一帧渲染前都会先清空渲染队列。熟悉Ogre渲染流程的很容易看到在SceneManager::_renderScene() 这个方法中调用prepareRenderQueue()方法。这个方法的实现很简单,就是清空现在的渲染队列并且初始化渲染队列的一些转载 2015-01-13 09:41:14 · 430 阅读 · 0 评论 -
ogre渲染过程
6. RenderTargetRenderTarget用来接收渲染操作的结果,它可以是屏幕上的窗口、离屏面(如texture)等。FPS信息的统计也是由RenderTarget完成的。在RenderTarget每次更新完成后,将会更新统计信息(封装于FrameStats中)。除了负责统计帧的信息外,RenderTarget还负责创建维护Viewport(视口):typedef std::m转载 2015-01-13 09:38:48 · 1240 阅读 · 0 评论 -
【笔记】OGRE改变LOD的函数
OGRE中,系统已经做好细节调控,如果想自己手动更动细节,函数如下:void setLodBias(Real factor = 1.0);//设置当前细节程次Real getLodBias(void) const;//获取当前细节程次原创 2014-11-27 10:54:49 · 513 阅读 · 0 评论