工作这么多年,也开发过几个引擎,去年还独立开发一个基于iPhone平台的3D FPS游戏引擎(包括引擎和所有编辑器)。最近在研究Unreal 3和Crysis的引擎,有了些新的想法,于是想全新开发一个新的引擎 ZeusEngine。
在写这片博客的时候这个引擎已经开发一段时间。
下面列出这个引擎将要支持的特性。
首先这个引擎是一个同时支持PC和iPhone平台的引擎,使用统一架构(事实上没有写任何区分平台的代码)。根据资源及其配置情况便可支持在PC上的高级效果,也可以支持iPhone上的简单效果,一切都是外部资源决定。
引擎特性如下:
1. 材质系统
简单来说材质中分为Solution,Solution包含PassGroup, PassGroup包含若干Pass,Pass包含管线状态,材质信息,
Shader等。这些属性通过xml文件进行组织。在模型导出时导出基本材质数据,然后通过模型察看器进行进一步的设置。
2. 渲染流程控制系统
渲染流程分为Solution(与材质的Solution相对于),Solution中包含若干Stage,在Stage可以完成渲染场景,渲染UI,
渲染屏幕(后期效果),同时Stage中还可以指定该Stage使用的材质PassGroup,和渲染ID,而且还可指定Shader,这样
就可以实现在不同的Stage中使用不同的材质,从而达到灵活配置。这些属性通过xml进行组织。
通过材质和渲染流程的配合可实现从低效果到超高效果的不同渲染方案。
与此同时大量的后期效果(HDR,动态模糊...)也将通过该机制实现。
3. 室内外场景管理
场景管理打算使用bsp+portal+pvs方案(我上一个引擎就是这么做的),但除此之外这次还要增加地形支持,就像Unreal那样。
4. 光照&阴影
光照方案使用全局辐射度生成静态光照图,对于iPhone而言,就近此而已了,游戏在运行全过程不是用任何光源。
对于PC而言,在此基础上增加延迟渲染(通过配置渲染流程)实现动态光照。在超高画质还将支持SSAO(同样是培植渲染流程)等技术。
阴影打算使用shadowmap来做,同时增加smart blur算法,来解决shadowmap分辨率低而造成的问题。
5. 粒子系统
这没啥好说的,值得一提的是增加一个可将粒子系统本身作为粒子进行发射的机制,同时提供完备的时序控制机制。
6. 动画系统
支持骨骼动画,动画融合,将来也许会考虑支持IK。
7. 物理系统
整合一个开源的物理引擎。这一点不打算做得太过复杂。
8. 资源管理
支持资源打包压缩,动态资源加载,无用资源自动回收等级制。
这里多说一句,以我的经验来看,游戏引擎一个很重要的工作就是高效资源管理。
9. 渲染系统
渲染我将使用OpenGL/ES。当然并不是指支持GL系列,事实上我将实现一个渲染层,上层调用该渲染层的接口,将来也
会使用D3D来实现接口,从而支持D3D.
10. 声音系统
没啥好说的,使用FMod,很多牛比引擎都是用这个声音引擎,而且它也支持iPhone平台。
11. 脚本系统
这个初期使用Lua,后面看情况可自行写一个脚本系统,就像quake的vm那样。
12. 2D部分
支持精灵动画,2D地图功能。这部分在上一个引擎就已经实现,这次只不过是移植过来而已。
13. 全套工具集和
模型动画导出插件,模型察看材质shader编辑器,粒子编辑器,场景管理器等
本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/Leo1981816/archive/2010/04/25/5527172.aspx
来源:https://www.cnblogs.com/lancidie/archive/2011/02/11/1951085.html