一步步构建3D引擎-------架构设计
2015-07-23 17:12
519 查看
打算将所做3D引擎一些心得,分篇章记录下来。主要基于OpenGLES2.0,采用面向对象设计语言C++实现的跨平台轻量级高速引擎。
以做个总结:
对于一个3D引擎,主要应该有一下模块组成:
该引擎的最终规划主要由四个模块组成,每个模块完成的功能描述如下:
第一模块:
数学库:提供通用数学运算库和三维数学运算库(如向量、矩阵);
资源管理:使应用程序更好的使用内存,对系统内存进行调度并对资源实现引用计数管理;
I/O支持:提供鼠标、键盘、手柄等输入设备的支持;
网络支持:提供Socket连接、数据包发送。
第二模块:
日志系统:用于信息输出及调试使用;
声音支持:支持某些特定声音格式;
渲染器:提供二维及三维图形的渲染、光影效果的处理、材质的渲染等等非常重要的功能;
动画:管理关键帧动画和骨骼动画,丰富角色,使之动作更逼真;
第三模块:
场景管理:管理整个游戏世界,使得游戏应用能更高效地处理场景的更新及事件;
特效处理:使得游戏更加绚丽,主要包括HDR、动态阴影、天空盒以及水面等特效;
GUI:负责用户和系统的交互。
第四模块:
Script: 脚本语言,供游戏开发;
AI:处理游戏中的逻辑,负责角色对事件的反应、复杂智能算法的实现等;
辅助开发工具:便于游戏的开发,常用开发工具:场景编辑器、材质编辑器、动画编辑器、GUI编辑器、逻辑编辑器、特效编辑器等辅助管理工具。
以做个总结:
对于一个3D引擎,主要应该有一下模块组成:
该引擎的最终规划主要由四个模块组成,每个模块完成的功能描述如下:
第一模块:
数学库:提供通用数学运算库和三维数学运算库(如向量、矩阵);
资源管理:使应用程序更好的使用内存,对系统内存进行调度并对资源实现引用计数管理;
I/O支持:提供鼠标、键盘、手柄等输入设备的支持;
网络支持:提供Socket连接、数据包发送。
第二模块:
日志系统:用于信息输出及调试使用;
声音支持:支持某些特定声音格式;
渲染器:提供二维及三维图形的渲染、光影效果的处理、材质的渲染等等非常重要的功能;
动画:管理关键帧动画和骨骼动画,丰富角色,使之动作更逼真;
第三模块:
场景管理:管理整个游戏世界,使得游戏应用能更高效地处理场景的更新及事件;
特效处理:使得游戏更加绚丽,主要包括HDR、动态阴影、天空盒以及水面等特效;
GUI:负责用户和系统的交互。
第四模块:
Script: 脚本语言,供游戏开发;
AI:处理游戏中的逻辑,负责角色对事件的反应、复杂智能算法的实现等;
辅助开发工具:便于游戏的开发,常用开发工具:场景编辑器、材质编辑器、动画编辑器、GUI编辑器、逻辑编辑器、特效编辑器等辅助管理工具。
相关文章推荐
- 通过微信扫描获取用户信息登陆网站
- JFinal的架构介绍,JFinal实现极速开发的原理是什么?又是如何实现的?
- 【亲述】Uber容错设计与多机房容灾方案 - 高可用架构系列
- bootstrap:javascript插件架构
- 网站发布
- AWWWB.COM网站克隆器
- 理解RESTful架构
- 我们要如何观察、分析竞争对手的网站?
- 加快您的网站的最佳实践(Best Practices for Speeding Up Your Web Site)
- wap网站seo如何优化呢?
- 优秀架构博文
- krpano全球漫游相同的声音和声音添加的场景(文章内容已移至krpano中国网站)
- 我在网站开发中经常用到的几个js函数01
- 不错的Android开发参考网站
- 网站查询工具
- Android架构实战(二)—— RxJava
- 网页设计师,使您的网站更有利可图的电子商务5原因
- 【Android架构GPS篇】之GPS定位应用层流程
- perl 判断网站内容是否变更
- [架构]--高并发问题及解决方案