<@乌龟:>[原创]设计自己的3D图像引擎(1): WuguiEngine之开篇的话
前言:
研究C++相关的知识有了不少的时间了.最近一段时间开始写自己的继续C++ Direct3D图像引擎-WuguiEngine. 代码也参考了不少的资料. 从引擎的功能上来说,不求能够让大众接受, 不求能够成为一个众多人维护的开源项目(不过源代码是开放的,只是没有太多精力来管理一个项目). 只是我一个在学习过程中的一个简单的项目.同时我在编写的过程中也希望能够多和大家交流, 把我的心得与大家分享, 也希望大家能够为我的学习或者项目提出一些意见. 本引擎虽然不算一个很易用的引擎, 不过也会实现目前流行的一些技术.
选择WuguiEngine作为本引擎的名字主要是有两个原因,第一是我的外号叫乌龟 为什么不叫TortoiseEngine呢,我认为Wugui看起来更有意思一点.第二是由于本引擎设计相对简陋, 其实主要是为了练习一下C++与DirectX的一些特性,投入的时间相对较少,运行起来的速度肯定不快,像乌龟一样. 这点就希望大家不要嘲笑了 :-D
引擎的特征:
本引擎主要具备的内容有:
1) 完整的场景管理系统(目前实现了线性查找,最简单的,之后会实现一个八叉树)
2) 一套可扩展的游戏主逻辑系统(目前完成了部分,实现了一些简单的Demo)
3) 一套不算很复杂,但是比较方便的输入系统(目前完成了部分)
4) 一套可扩展, 使用起来也相对简单的Shader系统(目前完成了部分, 我准备将图像的渲染做成全Shader方式, 放弃固定管线的内容)
5) 一套可以进行资源动态加载的资源管理系统(目前还没有实现)
6) 一套方便定位文件, 读取文件的流系统与文件系统.(目前还没有实现)
7) 重新封装D3D里面的部分类,使之使用起来更简单(目前实现了部分,比如Mesh, Texture等等)
8) 使用命名空间进行代码的管理, 从设计的角度上来说, 并没有使用目前很流行的接口与实现相分离的做法, 主要是我比较懒(-_-)
9) 没有设计API抽象层, 主要是本项目主要是学习为主,不想画过多时间在抽象层这类的代码上
本引擎准备进行的时间:
从我个人的打算上来讲,准备花费半个月左右在这上面
本引擎目前的进展:
前面讲内容的时候已经提到了一些目前的进展, 之前我多半写的是c#, c++只是一点皮毛, 从八月初才重新进行规划学习, 目前代码在3500行左右(算上空行和注释). 代码量不多, 不过这样也挺方便了解这个引擎的 :-D
参考资料:(目前的)
1) IC里面使用的(这个不是开源的,就不细说了)
2) irrilicht引擎, 主要参考了一些命名和结构的组织
3) <3D游戏引擎设计 实时计算机图形学的应用方法> 这本书的内容相当不错,讲得比较系统, 但是英文看起来有点晕-_-
引擎的主页:
http://code.google.com/p/wuguiengine/ , 现在有部分的代码,有兴趣的同志们可以下下来看看.
之后有时间可以做个好看点的乌龟的图片上去,哈哈