最近在学习DIRECTX11,在学习过程中编写了一个程序,到现在发现这个程序也有几行代码了,结构还算整齐,就想把这个程序分享出来,其中涉及到了C++程序的架构,windows窗口程序编写,和DirectX11图形程序的知识.希望大家喜欢.程序风格和很多知识来源于这个网站:http://www.rastertek.com/index.html .大家想深入学习Dx的可以去看看. 先说程序框架吧.我的程序结构及文件如图所示: 在这里,main.cpp是入口函数(WinMain)所在的文件,其余的既有…
主菜终于来了.这个d3dclass主要做的工作是dx11图形程序的初始化工作,它将创建显示表面交换链,d3d设备,d3d设备上下文,渲染目标表面,深度模板缓存:设置视口,生成投影矩阵. D3D设备:可以看成是一个接口,获得这个接口后就能创建各种d3d对象 D3D设备上下文:应该也可以看成是渲染环境的接口吧,使用它就能定制各种渲染环境,对绘制环境进行配置 显示表面交换链:显示表面的集合,显示表面是什么?是当前屏幕内容的内存映射,这或许应该说是主显示表面,与主显示表面同在交换链里的是副显示表面.它们…
我的小项目主要是会用到MongoDB. 呵呵,我也是现学现卖. 都说小公司十八般武艺样样稀疏,没有办法啊! 兵来兵挡,将来将挡!自己是个兵呢?还是一个将呢! 没有公司培养,就自己培养自己呗.差的远一点罢了. 首先去官网下载一个MongoDB. 呵呵,首先安装二进制包,. 安装好了之后,找到bin目录,把路径复制下来.配置环境变量. 写入环境变量是为了直接使用mongod/mongo等命令 控制台输入mongo,我们就可以知道自己安装的mogodb是哪一个版本了. 其次需要使用mongod启动mo…
先上代码: systemclass.h #pragma once #include"graphicsclass.h" const bool FULLSCREEN = true; class systemclass { public: systemclass(); ~systemclass(); bool Initialize(); void Run(); void Shutdown(); private: graphicsclass *m_graphics; HWND m_hwnd;…
整篇文章中对于directx11的知识的介绍并不多,我也不知道怎么介绍,也应该说对于directx,它有它自己的部分,比如设备(device),设备上下文(devicecontext),顶点缓存,索引缓存之类,也有图形学的部分比如世界矩阵,观察矩阵,投影矩阵,三角形渲染,光照,混合.要将这里涉及的api的功能,参数,对象一一说明,非常难.要将图形学里世界矩阵,观察矩阵,投影矩阵的推理,为什么选择渲染三角形而不是渲染四边形五边形这些一一明说,更不易(这个内容是我自己根据<3d游戏大师编程技巧>然…
这是框架的第三层graphicsclass,这个类才真正可以说是整个程序的框架,因为它组织了后面所有的成员. 代码: graphicsclass.h #pragma once #include<Windows.h> #include <d3d11.h> #include <d3dcompiler.h> #include <D3DX11.h> #include <xnamath.h> #include"cameraclass.h"…
粒子系统类,粒子系统是游戏里细小元素的控制系统,虽然感觉上它对游戏的影响不大,但是其实有了它能给游戏增色不少.粒子系统控制着细小元素的生死,运动,纹理.对它的编写让我知道,游戏里的这一片从天空飘落的雪花其实是之前那一朵已经融化在地上的雪花. 这个类我还没有编写完整,因为我发现如果要真正实现那种很美的效果我还要多加学习啊.使用广告版技术让人觉得它真的是个粒子,开启alpha通道能让粒子与背景融为一体,开启光照能让粒子煜煜生辉,给纹理混合上颜色才能让粒子真正的变幻幻幻(不是打错字)起来. parti…
模型类是世界空间中的表示物体的类,那么他的所做的事就是加载模型,移动模型,渲染模型 modelclass.h #pragma once #include <d3d11.h> #include <d3dcompiler.h> #include <D3DX11.h> #include <xnamath.h> #include<fstream> using namespace std; #pragma comment(lib,"d3dx11.…
cameraclass是一个相机类,它的作用是生成非常重要的观察矩阵.本小节涉及到一点数学知识,相对前面需要只是填充,调用,算是比较有趣的吧. cameraclass.h #pragma once #include <d3d11.h> #include <d3dcompiler.h> #include <D3DX11.h> #include <xnamath.h> #pragma comment(lib,"d3dx11.lib") #pr…
这个类是用来创建着色器并设置输入布局的. 这个类比较特殊,它创建的着色器与Effect文件有关,effect文件是用高级着色语言(hlsl)编写的. shadersclass.h #pragma once #include <d3d11.h> #include <d3dcompiler.h> #include <D3DX11.h> #include <xnamath.h> #pragma comment(lib,"d3dx11.lib")…