打算将所做3D引擎一些心得,分篇章记录下来。主要基于OpenGLES2.0,采用面向对象设计语言C++实现的跨平台轻量级高速引擎。
以做个总结:
对于一个3D引擎,主要应该有一下模块组成:
该引擎的最终规划主要由四个模块组成,每个模块完成的功能描述如下:
第一模块:
数学库:提供通用数学运算库和三维数学运算库(如向量、矩阵);
资源管理:使应用程序更好的使用内存,对系统内存进行调度并对资源实现引用计数管理;
I/O支持:提供鼠标、键盘、手柄等输入设备的支持;
网络支持:提供Socket连接、数据包发送。
第二模块:
日志系统:用于信息输出及调试使用;
声音支持:支持某些特定声音格式;
渲染器:提供二维及三维图形的渲染、光影效果的处理、材质的渲染等等非常重要的功能;
动画:管理关键帧动画和骨骼动画,丰富角色,使之动作更逼真;
第三模块:
场景管理:管理整个游戏世界,使得游戏应用能更高效地处理场景的更新及事件;
特效处理:使得游戏更加绚丽,主要包括HDR、动态阴影、天空盒以及水面等特效;
GUI:负责用户和系统的交互。
第四模块:
Script: 脚本语言,供游戏开发;
AI:处理游戏中的逻辑,负责角色对事件的反应、复杂智能算法的实现等;
辅助开发工具:便于游戏的开发,常用开发工具:场景编辑器、材质编辑器、动画编辑器、GUI编辑器、逻辑编辑器、特效编辑器等辅助管理工具。