Ogre Addon之Paged Geometry
还是OGRE好啊,无尽的Addon,无尽的宝藏。既有SkyX,Hydrx这样的天空水体渲染库可供学习,还有Paged Geometry这样的“大规模海量geometry管理系统”。它通过batch,streaming,LOD这几种技术来提升场景管理效率。主要是树,草,石头这些static geometry。OGRE自带的StaticGeometry对我有点过于复杂了。。不利于摄取精华,所以选取了这个库。它接口和实现的分离设计得很好,不用具体去了解实现细节,客户端仅仅用若干个清晰的调用就能达到目的,值得学习的思想和手法。可调参数的开放感觉也挺灵活,种草可以通过提供一张Desity Map灰度图来决定草的分布位置。待我这几天将其集成到编辑器中,慢慢调参数玩。
下面看两张海量植被场景渲染的对比图(Release版):
普通方式渲染,帧数和DP都不理想
使用Paged Geometry
这个库的可读性跟OGRE一样好。一个1600行的代码文件,70%都是注释文档,而且是doxygen规范化的,就像是literature program一般行云流水,研究一会就会对这个库结构和设计了解了。
(BTW:在VS2010上我已经离不了productivity power tools扩展的enhanced scroll bar工具了,好用到痛哭流涕!)
作者有很严重的代码洁癖,我擦嘞连构造函数都不放过,这癖好比我有过之而无不及啊:
在吸收该库之前,最好能在较高角度作一个分析。于是大概画了个类图。用了两次VS2010自带的UML工具来画类图后,还是觉得功能太弱了,现转向IBM的rational rose专业工具。
Ok,接下来可以开始我的“移植”工程了。。。
Ogre Addon之Paged Geometry的更多相关文章
- Axiom3D:Ogre中Mesh网格分解成点线面。
这个需求可能比较古怪,一般Mesh我们组装好顶点,索引数据后,直接放入索引缓冲渲染就好了.但是如果有些特殊需要,如需要标注出Mesh的顶点,线,面这些信息,以及特殊显示这些信息. 最开始我想的是自己分 ...
- Ogre 1.8 terrain 和 paging 组件
以下转自:http://hi.baidu.com/xocoder/item/e8d87cf53d87612b753c4cfd OGRE地形生成 OGRE可以通过两个接口来生成地形,分别是void Te ...
- Ogre参考手册(五)3.2 合成器
3.2 合成器Compositor 合成器框架是Ogre用于全屏后处理的API.你可以通过脚本而不是API定义合成器.你可以很容易为视口实例化合成器. 合成器基础 无论是要替换还是要与主渲染窗口混合, ...
- 转:Ogre的SceneManager分析
SceneManager分析 场景管理主要工作包括以下几点: 1.可移动.不可移动和可渲染物体的创建删除. 2.场景查询. 3.渲染队列. 4.动态阴影. 一. 场景对象创建 场景中的所有对象,包括可 ...
- 转: 在Ogre中使用Havok物理引擎(源码)
作者:CYM 众所周知Ogre则是评价很高的一款图形渲染引擎,Havok则是世界一流的物理引擎,今天花了点时间将两者结合在了一块,做了个Demo 由于国内对Havok的研究似乎很少,网上也找不到多少资 ...
- Axiom3D:Ogre公告板集与合并批次
在上文中,我们把Ogre里的网格分解成点线面后,我们要完成一个新的功能,在点上突出显示. 得到顶点位置后,这个功能也就是一个很简单的事,最开始是每个顶点添加一个子节点,节点上添加一个圆点. forea ...
- Axiom3D:Ogre动画基本流程与骨骼动画
在Axiom中,Animation类用于管理动画,在此对象中主要管理着AnimationTrack对象,此对象用于管理动画的各种类型的每一桢.在Axiom中,动画类型主要有变形动画,姿态动画,骨骼动画 ...
- Axiom3D:Ogre中Mesh文件格式分析(一)
在Axiom3D,或者说是Ogre的mesh的文件格式我们可能通过代码反推出相关格式,相关过程本来我是直接写的,后面发现相关流程写完后,我自己都看晕了,然后我就把一些过程用Execl整理出来,发现过程 ...
- CSharpGL(14)用geometry shader渲染模型的法线(normal)
+BIT祝威+悄悄在此留下版了个权的信息说: CSharpGL(14)用geometry shader渲染模型的法线(normal) +BIT祝威+悄悄在此留下版了个权的信息说: 2016-08-13 ...
随机推荐
- Eclipse下建立geoserver源码工程
摘要:本文详细阐述,如何基于geoserver源码构建eclipse工程文件,操作过程中除用到jdk.eclipse以外,还有git和maven,操作系统为windows8. 1安装Git 从(htt ...
- Having the Result Set of a Stored Proc Sent to You by RSS Feed.
Having the Result Set of a Stored Proc Sent to You by RSS Feed. by JBrooks 14. 十二月 2010 12:44 I wa ...
- html5 canvas 旋转扩大
<!doctype html> <html> <head> <meta charset="utf-8"> <title> ...
- F2063 Could not compile used unit 'tt.pas'
install packge error F2063 Could not compile used unit 'tt.pas' 有可能是工程的pas文件相对路径不对.在工程管理看是否能打开文件,如果打 ...
- 借助LVS+Keepalived实现负载均衡(转)
原文:http://www.cnblogs.com/edisonchou/p/4281978.html 一.负载均衡:必不可少的基础手段 1.1 找更多的牛来拉车吧 当前大多数的互联网系统都使用了服务 ...
- 【131】如何讲好PPT
1 列提纲2 写稿子3 背稿子4 演练5遍,用自己的话说出来,最好和稿子一样,但不强求一样,关键要理解5 不一定要做,但是做好了会有很大提高,讲的时候也会很NB:有时间可以再演练几遍,录出来看看哪里需 ...
- Java沙箱技术
自从Java技术出现以来,有关Java平台的安全性及由Java技术发展所引发的新的安全性问题,引起了越来越多的关注.目前,Java已经大量应用在各个领域,研究Java的安全 性对于更好地使用Java具 ...
- poj 1797 Heavy Transportation(Dijkstar变形)
http://poj.org/problem?id=1797 给定n个点,及m条边的最大负载,求顶点1到顶点n的最大载重量. 用Dijkstra算法解之,只是需要把“最短路”的定义稍微改变一下, A到 ...
- filter 过滤序列
class filter(object): """ filter(function or None, iterable) --> filter object Ret ...
- css3妙用 刷新图标
从猫眼电影看到的一个图标 .geopos i:before { content: ""; width: .8em; height: .8em; border: .14em soli ...