1. Gamebryo 2.5 引擎新增特性
1.1. 开发工具方面
1.1.1. 场景编辑器
场景编辑器(Scene Designer)新增地形系统,新增特性如下:
1)新增地形编辑功能,被整合到了Gamebryo的场景编辑器中;
2)支持动态LOD;
3)可选择的整合IDV SpeedTree® ;
4)支持贴图,贴花,碰撞检测,meta-data,基本的变形能力,基本的水的创建。
5)提供跨平台的支持:PC (DirectX®9), Xbox 360™ and PLAYSTATION®3
6)提供了TerrainDemo 帮助开发者快速使用。
测试结果:
在测试环境8600GT core6600 2.4MHz双核 内存2G下,测试工具PIX,其
FPS 为135,DP 为 117。
小节:该地形性能和效率还可以,整体框架已经搭建好,但工具的易用性和完整性均有所欠缺,期待下一版本能够完善。
1.1.2. 动画编辑器
动画编辑器(Animation Tool)最主要的更改是对依赖物理的动画提供了一些简单操作。主要是对简单刚体物理:
1.1.3. 模型查看器
模型查看器(AssetViewer)已经不能对2.2版本的NIF文件做支持了,因为NIF文件格式发生了变化。
1.1.4. 导出插件
3DMax导出插件支持3DMax 8.0及以上版本的插件,低版本不支持了,Maya插件没装,没有相关信息。
1.2 图形引擎渲染技术方面
1.2.1. 软粒子
支持软粒子 (soft particles)
粒子系统可以支持Shader了(定制的效果能够被加到粒子上)。
1.2.2. 阴影系统
Gamebryo 2.5 支持深度图阴影技术(Depth maps)、百分比渐进过滤(percentage closer filtering, PCF) 算法, 和方差阴影贴图技术(variance shadow Mapping )。
阴影系统已经作为一个模块集成到引擎中如(NiShadowMap , NiShadowManager),
在此版本之前,shadow map 只是引擎提供的一个例子,并没有集成化。
1.3. 通用技术方面
1.3.1. Floodgate
FloodGate是一个跨平台的流数据处理的解决方案,它能发挥多核平台下多线程之间数据流交互的性能。它能在不同的游戏平台快速简单的开发多处理器程序,发挥处理器与内存的之间数据交换的最大性能。不过需要程序员对FloodGate开发模式有个了解。
FloodGate 在 Gamebryo2.5版本的运用主要有以下几个方面的特性:
1)线程调度所需要的资源占用大幅度降低
2)更多弹性以满足运行时资源配置
3)显著减少总的内存占用
4)Mesh修改器在Gamebryo运行时和Floodgate被重新整合。
5)Gamebryo使用Mesh修改器做变形,骨骼动作,粒子等效果能在Gamebryo2.5自动的通过Floodgate运行。
具体表现请看下面的例子测试
小丑鱼例子:这个例子主要演示了在FloodGate技术和新增加的mesh修改器的作用下下角色顶点动画的效率提升(210条鱼,140多万面在 的模型顶点实时修改的情况下FPS为40桢,调整动画速度对效率影响不大,总体看来性能表现上已经让人比较满意,游戏中的数量级很难达到这个量。如在粒子系统中也很少能达到这个量的修改。)
MeshCreation这个例子展示的东西比较多,主要是地型,软粒子和多面片水,虽然都不是多高深的技术,但之前没有Mesh修改器,就2.2版提供的接口在效率上消耗太大。
MeshInstancing Instance技术在目前游戏中的应用是非常广泛的可以大大提高性能,2.5版本里提供了GPU Instance还是很不错的,就例子测试看来,这个例子的性能提升情况如下:
2500个Instance基于GPU 平均FPS 30
1.3.2. 几何系统
GameBryo 2.5版本的几何系统做了如下的变化:
1)满足Console游戏的需求, 提供系统优化.
2)GameBryo地形类中不再使用固定数据格式
3)支持任意的数据语义来提高材质弹性
4)为性能和弹性支持更多最优化数据流安排
5)提供向后兼容路径以减少开发工作量
6)NiDataStream对象可以直接装载数据到renderer资源从而减少碎片
7)弹性的顶点数据格式允许针对Console项目优化带宽和内存占用
8)DCC工具或命令行控制的数据打包通过XML网格 profiles
9)NiDataStream对象能够包含GPU实例化的实例数据
10)几何数据能被指派为任意的语义(不仅在于当前的好处,而且还为次世代准备)
11)语义通过一些易读的shaders被映射至渲染语义
12)为了方便灵活的共享,数据能被打包成多个数据流
13)索引能使用16和32bit两种模式。
2. Gamebryo 2.5 引擎与Gamebryo 2.2性能对比
2.1. 渲染效率方面
同样一个模型,在Gamebryo 2.2下的渲染FPS为100 ,在Gamebryo 2.5下为120 。
2.2. 射线选取效方面
2.5版本中对NiPick进行了修改,估计是针对之前射线选取效率低下进行的,经过测试(测试环境同上,在调试Release版本下做100次的射线检测平均时间为0.06秒),
之前2.2版本Release版本下做100次射线检测的平均时间为0.3秒,考虑到某些因素的差异,保守测试2.5版本的射线检测比原来快5倍左右。
2.3. FloodGate对性能提升的方面
FloodGate的技术是Gamebryo 2.5版本最新的技术,FloodGate对性能提升的效果以CharacterPerformanceDemo例子。
同样是演示FloodGate在单线程与多线程在多核下的效率提升(在60桢以下时,2个线程比一个线程能平均提高桢数4桢左右,60桢以上时平均提升10桢左右,另外这个数据与模型和骨骼数量有关,可以切换模型比较,另外可以换4核进行尝试)
2.4. 多角色场景整体性能方面
在同样一个230个角色的场景中,同样是两个线程下,测试工具为PIX ,测试环境为8600GT core6600 2.4MHz双核 内存2G下:
Gambryo 2.5 下的场景的FPS为92.8,Gambryo 2.2 为36,性能提高非常明显。
3.Gamebryo 2.5 引擎整体评价
在Gamebryo 2.5 之前,用Gamebryo 开发大型MMO比较困难,主要表现在以下几个方面:
1) 没有大型MMO必须的地形编辑器;
2) 没有Mesh修改器,很多渲染效果实现起来困难;
3) 整体性能很难达到大型MMO的标准。
通过评估发现,Gamebryo 2.5 针对以上几个问题做了比较好的处理,特别是第二,第三基本符合要求。对于第一点,Gamebryo 2.5 还需要改进,因为地形编辑工具的功能和易用性尚未满足要求。
总体来说,对于一直运用Gamebryo引擎的游戏开发者来说,把Gamebryo引擎升级到2.5版本的利大于弊。