随笔分类 -  OGRE

摘要:boolworldCoordToScreen(Vector3 objPos, Camera* cam, Vector2 screenRect, Vector2& screenPos){Matrix4 viewMatrix = cam->getViewMatrix();Matrix4 projMatr... 阅读全文
posted @ 2014-05-08 23:58 小 楼 一 夜 听 春 雨 阅读(1795) 评论(0) 推荐(0) 编辑
摘要:重要注释——矩阵的顺序:有一件事需要牢记,HLSL允许你使用2种不同方式处理矩阵和向量相乘——mul(v,m)或者mul(m,v)。二者之间唯一的区别就是矩阵被有效地变换。在OGRE中传递矩阵你应该使用mul(m,v)——因为这与渲染器从像RenderMonkey一样的工具中生成的结果保持一致,并且也和Cg一致,但是与使用mul(v,m)的Dx9 SDK和FX合成器不一致——在使用那些渲染器时,你不得不转换mul()的参数。注意,如果你在渲染器中使用了float3x4 / matrix3x4类型,且绑定了OGRE自动定义(例如骨骼矩阵),那么你在程序定义时或许需要使用column_major_ 阅读全文
posted @ 2013-11-15 11:43 小 楼 一 夜 听 春 雨 阅读(1096) 评论(0) 推荐(0) 编辑
摘要:硬盘上没有,第一次创建Archive的时候用SFileOpenArchiveForUpdate,当打开一个已经存在archive的时候用SFileOpenArchive。MpqDeleteFile删除文件并不能使MPQ包的大小变小,只是将hash表中呗删除文件对应的项设置为无效。 阅读全文
posted @ 2013-07-01 20:56 小 楼 一 夜 听 春 雨 阅读(406) 评论(0) 推荐(0) 编辑
摘要:大家可能会遇到一些Ogre中的内存分配的方面问题,我对这个总结了一下内存分配的方面资料。Ogre在1.7版本后,统一了内存分配策略,提供了内存是否泄漏的跟踪和内存池等比较方便开发的一些策略,目前提供了四种内存分配OGRE_MEMORY_ALLOCATOR 方式:#defineOGRE_MEMORY_ALLOCATOR_STD1#defineOGRE_MEMORY_ALLOCATOR_NED2#defineOGRE_MEMORY_ALLOCATOR_USER3#defineOGRE_MEMORY_ALLOCATOR_NEDPOOLING4大家从字面意思上应该能知道这四种内存分配方是的1、标准内存 阅读全文
posted @ 2013-06-28 00:16 小 楼 一 夜 听 春 雨 阅读(587) 评论(0) 推荐(0) 编辑
摘要:http://blog.csdn.net/zdl1016/article/details/1612647很多游戏引擎都提供了多种渲染器(DirectX,OpenGL,Software),甚至是多种平台(Windows,Linux,Mac),这对于引擎的设计和实现来说是一个很大的挑战,尤其是多渲染器,又要考虑到效率,又要考虑到通用,又要发挥每种渲染器的特点,这的确是一道天堑。这里讨论的原则很简单: 1. Keep it simple; 2. Make it work first. 先看一下Ogre使用的方法。Ogre中各个模块是使用的插件式的设计“组合”在一起的,你可以在Ogre的基础上加入你. 阅读全文
posted @ 2012-11-09 11:16 小 楼 一 夜 听 春 雨 阅读(872) 评论(0) 推荐(0) 编辑
摘要:材质脚本material screen{ technique { pass { texture_unit { texture blueScreen.jpg } texture_unit { texture screen } } }}blueScreen.jpg必须是blank white的图像,因为多重纹理混合默认是modulate。。。text... 阅读全文
posted @ 2012-09-26 16:09 小 楼 一 夜 听 春 雨 阅读(1574) 评论(0) 推荐(0) 编辑
摘要:来源:http://school.ogdev.net/ListShow.asp?ListType=1&TypeID=8 很早以前就想写一些关于OGRE的文章了,一直没机会。 理解一个渲染引擎,我觉得最重要的是先抓住了它的主架构,它的主线,渲染流程,不然的话,一个引擎几万行,甚至几十万行的代码,光是打开solution就能吓你一跳了,OGRE也有十几万行的代码量,我一开始看它的时候也是无从下手,感觉代码太多了,不知道从哪开始看好,这个class看看,那个class看看,由于对整个引擎没有一个清晰的认识,看过了也印象不深,所以,最后,还是决定先找出它的主线,了解它的渲染流程,这样才能有机地 阅读全文
posted @ 2012-08-26 22:12 小 楼 一 夜 听 春 雨 阅读(526) 评论(0) 推荐(0) 编辑
摘要:ogre渲染流程: 1. _fireFrameStarted() 2. 按某种优先级更新所有渲染目标 2.1 firePreUpdate() 2.2 更新所有视口 2.2.1 fireViewportPreUpdate() 2.2.2 场景管理的渲染函数 2.2.2.1 更新阴影 2.2.2.2 更新动画 2.2.2.3 更新节点 2.2.2.4 更新一些参数 2.2.2.5 清空渲染队列 2.2.2.6 填充渲染队列 进行可见性判别 2.2.2.6.1 firePreFindVisibleObjects() 2.2.2.6.2 查找可见节点并加入渲染队列 2.2.2.6.3 firePost 阅读全文
posted @ 2012-08-26 21:54 小 楼 一 夜 听 春 雨 阅读(277) 评论(0) 推荐(0) 编辑
摘要:Ogitor-0.4.2源代码构建,不少时间,这里记录一下:下载源代码的地址为:http://hg.ogitor.org/v0-4点击zip(这个搞得我找了很久)可执行程序下载地址为:http://www.ogitor.org/Building+Ogitor&structure=Development(一)构建QT1.环境变量中加入bin路径:PATH--->C:/Qt/4.6.3/bin(我的路径是)2.环境变量中加入qt的路径:QTDIR--->C:/Qt/4.6.33.打开vs2008的命令提示行(如图)4.进入qt目录:cd C:/Qt/4.6.35.执行:conf 阅读全文
posted @ 2011-12-30 11:33 小 楼 一 夜 听 春 雨 阅读(5079) 评论(1) 推荐(0) 编辑
摘要:ogre实现分屏渲染 1 class MyApplication :public ExampleApplication 2 { 3 public: 4 MyApplication() {} 5 ~MyApplication() 6 { 7 } 8 9 void createCamera()10 {11 mCamera = mSceneMgr->createCamera("mycamera1");12 mCamera->setPosition(Ogre::Vector3(0, 10, 20));13 ... 阅读全文
posted @ 2011-12-05 14:00 小 楼 一 夜 听 春 雨 阅读(558) 评论(0) 推荐(0) 编辑