摘要: 来源:http://school.ogdev.net/ListShow.asp?ListType=1&TypeID=8 很早以前就想写一些关于OGRE的文章了,一直没机会。 理解一个渲染引擎,我觉得最重要的是先抓住了它的主架构,它的主线,渲染流程,不然的话,一个引擎几万行,甚至几十万行的代码,光是打开solution就能吓你一跳了,OGRE也有十几万行的代码量,我一开始看它的时候也是无从下手,感觉代码太多了,不知道从哪开始看好,这个class看看,那个class看看,由于对整个引擎没有一个清晰的认识,看过了也印象不深,所以,最后,还是决定先找出它的主线,了解它的渲染流程,这样才能有机地 阅读全文
posted @ 2012-08-26 22:12 小 楼 一 夜 听 春 雨 阅读(536) 评论(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 小 楼 一 夜 听 春 雨 阅读(294) 评论(0) 推荐(0)
摘要: 一、场景管理有很多种方法,如四叉树、八叉树、BSP、模糊K-D树、包围球层次结构等。室内环境主要是BSP为主,从quake3一直延续到现在主流的引擎都是以BSP为基础,BSP使用并不难,关键是数据的生成,这就牵涉到场景编辑器。 Quake3、Unreal:BSP,有自己的编辑器。 FarCry:场景分为室内和室外两部分,室内场景使用BSP, 室外不清楚但应该跟地形有很大关系,同时为了支持超远距离视距使用了地形Occlusion Culling,另外也可以手动放置OcclusionArea。 RenderWare:模糊K-D树,内置了很多种K-D树切割方法,读者可以借鉴到自己的引擎,我自己试过把 阅读全文
posted @ 2012-08-26 00:06 小 楼 一 夜 听 春 雨 阅读(1969) 评论(0) 推荐(0)