引擎筹备

Demo包括分为两个主要部分:

一、 引擎内核部分

包括:图形(Core_Graphics)内核、系统管理(Core_System)内核、输入(Core_Input)内核、工具箱(Core_Tool)内核四部分(正准备加入声音(Core_Sound)内核)

1、 Core_Graphics图形内核介绍:与图形渲染有关的功能集合。主要包括以下类:

cGraphics类(管理图形设备接口)

cVertexManager类(顶点管理器)

cSkinManager(材质纹理表皮管理器)

cFrustum类(视锥六面体更新可见性检测等封装)

cWorldPosition类(封装3D世界变换操作,内含广告牌技术)

cCamera类(第一人称、第三人称相机封装)

cSprite2D类(自己实现的一个2D贴图类,未使用D3D中精灵接口)

cModel类(自己实现的加载X文件中各种类型数据的模型,并对其操作的模型类。格式包括一般网格的加载、骨骼动画加载、蒙皮骨骼动画加载、带路程数据的动画模型加载。实现中只使用了D3DXFile接口读取文件数据,数据的组织分析完全自己实现。其下面包括cModelMeshcModelFramecModelAnimSetcModelRoutecXFileParsercXParser等功能类)

cFont类(字体操作封装)

cFPSCounter类(帧数统计)

2、 Core_System系统内核介绍:系统内核处理应用程序的初始化;应用程序流程、进程、状态以及数据包的管理;为游戏提供精确的时间控制和FPS计数等等。主要包括下面几个类:

cApplication类(创建应用程序和控制程序流程接口类)

cStateManager类(使用状态编程SBP法,利用状态栈控制游戏状态的更新切换)

cProcessManager类(同上,控制“进程”更新切换)

cDataPackage类(数据包文件简单存储读取操作的封装)

cTime类(应用程序计时类,类中首选精确计时法,不支持时提供粗略计时法,为游戏提供时间控制和帧数统计)

3、 Core_Input输入内核介绍:让玩家与游戏进行交互。主要包括以下几个类:

cInput类(初始化DirectInput

cInputDevice类(输入设备管理接口)

cKeyBoard类(键盘接口控制类)

cMouse类(鼠标接口控制类)

cJoystick类(游戏杆接口控制类)

4、 Core_Tool工具箱内核介绍:独立的工具类集。主要包括以下几个类:

cBitmapFile类(自己实现的不同位数的位图文件的加载保存、颜色数据的获取填充等操作)

cAABB类(实现了AABBAABB的快速相交检测、AABB与射线的快速相交性检测、AABB与平面的快速相交性检测等操作)

二、 地形Demo部分

包括:LOD四叉树地形、地形物体管理、天空、顶点着色器阴影体等部分。

1、 cTerrain类:实现了动态生成高度图数据、动态生成与高度图相应的地形纹理图、动态生成相应的光照纹理图、地形LOD四叉树的动态生成更新、地形相机裁剪等功能。

2、 cTerrainObject类:实现了地形静态物体、动态物体的加载渲染,动态物体的更新,静态物体的四叉树、八叉树的生成和动态相机裁剪,主角和地形上物体的快速碰撞检测等功能。

3、 顶点着色器阴影体:利用顶点着色器实现模型的阴影体形成,使用Z-Fail算法渲染阴影体,加速动态物体阴影的渲染。(注:此部分目前正在编写中,未完全实现)

注:本引擎是本人边学习边编写的,代码的结构和思想主要参考了一下书籍:

一、《DirectX9.0 3D 游戏开发编程基础》

二、《Focus On 3D Terrain Programming》(地形部分)

三、《3D Game Engine Programming》(内核图形引擎部分)

四、《DirectX 角色扮演游戏编程》(内核结构框架)

五、《DirectX高级动画制作》(内核模型部分)

六、《DirectX 实时渲染技术详解》(阴影体等)

七、《Visual C++/DirectX9 3D游戏开发引导》(地形部分)

八、其它一些参考书籍

你可能感兴趣的:(引擎筹备)