参考教程
学习记录
上一篇里, 我们再次的启用了框架,之前的内容里我们已经基本学完了 dx 的基础 api 知识 ,之后多是对其的用法。现在我们使用框架后,虽然觉得应该很轻松使用了,但是还是简单的梳理一下比较好。这一篇便是做此处理,顺便对框架的某些内容做以修改。
以上是从 rastertek 的教程框架截图而来,我想光是看框架的图就已经很明白了。我们的框架以 WinMain 为入口, SystemClass 包含输入 Input 与 Graphics 输出。
Input 输入较为简单, Graphics 则是包含诸多内容:
D3DClass
负责对于 D3D 设备的初始化以及统一控制,其封装了 D3D 设备的初始化以及调用等等内容,其声明如下:
1 | //////////////////////////////////////////////////////////////////////////////// |
CameraClass
封装了摄像机操作,其声明如下:
1 | //////////////////////////////////////////////////////////////////////////////// |
ModelClass
主要负责模型部分,它包括了模型的渲染,其下有 TextureClass
类负责模型的纹理,声明如下:
1 | //////////////////////////////////////////////////////////////////////////////// |
TextureClass
如下:
1 | //////////////////////////////////////////////////////////////////////////////// |
RenderTextureClass
我们封装了离屛渲染的方法,使用它我们可以将画面渲染至纹理以实现一些后期处理。其声明如下:
1 | //////////////////////////////////////////////////////////////////////////////// |
TextureShaderClass
类中,我们主要封装了与 Shader 交互的操作,其他有些特殊的 Shader 类则可以由这个类修改而成。其声明如下:
1 | //////////////////////////////////////////////////////////////////////////////// |
ReflectionShaderClass
则就是以 TextureShaderClass
类为基础的一个特殊类,它封装了反射纹理的操作,在上篇文章中我们使用它来渲染了反射效果,声明如下:
1 | //////////////////////////////////////////////////////////////////////////////// |
对于框架的更改,我们只是简单的对所使用的数学库进行升级,使用 DirectXMath 数学库,修改的内容比较多,所以不在此完整列出,源代码可以直接下载。