3D游戏引擎架构
///工具与数据(Tools/Data)
3d模型编辑器,关卡编辑器,以及图形程序
///系统(System)//
图形(Graphics)
输入(Input)
声音(Sound)
记时器(Timer)
配置(Configuration)
///控制台(Console)///
一个象Quake那样的控制台(console)系统。但这的确是一个非常好的想法。通过命令行变量与函数,你就能够在运行时改变你的游戏或是引擎的设置,而不需要重启。开发期间输出调试信息它将显得非常的有效。很多时间你都需要测试一系列变量的值,将这些值输出到控制台上要比运行一个debugger速度显然要快得多。你的引擎在运行期间,一旦发现了一个错误,你不必立即退出程序;通过控制台,你可以做些非常轻便的控制,并将这个错误信息打印出来。假如你不希望你的最终用户看见或是使用该控制台,你可以非常方便地将其disable,我想没人能看得见它。
///支持(Support)/
=====存储管理器(内存管理器)=====
=====文件载入器=====
3D模型加载
纹理加载
材质加载
关卡加载
声音加载
=====数据容器(假如你不愿自己写,也可以使用STL)=====
=====数学引擎(Math)=====
点(Point/Vector/Vertex)
线(Line)
面(Surface)
多边形(Polygon)
矩阵(Materix)
视图(View)
变换(Transform)
====================================================================
====================================================================
=====渲染/引擎 内核(Renderer/Engine Core)=====
可见裁减(Visibility)
碰撞检测与反馈(Collision Detection and Response)
摄像器(Camera)
静态几何体(Static Geometry)
动态几何体(Dynamic Geometry)
粒子系统(Particle Systems)
布告板(Billboarding)
网格(Meshes)
天空体(Skybox)
光线(Lighting)
雾(Fogging)
节点阴影(Vertex Shading)
输出(Output)
公共接口(interface):设置(settings)、位置(position)、方向(orientation)
///游戏介质(Game Interface)//
场景管理
游戏逻辑
///The Game (游戏)//